Хобрук: Ваш путь к мастерству в программировании

если данные существуют, обновите еще вставку, mysql, используя подзапрос или т. д.

  • «процесс» - это метод для подготовленного оператора
  • «QId» и «UnqId» — это дочерние внешние ключи (просто индекс)

я хочу сделать это однострочным оператором (включая 3 запроса) mysql, используя подзапрос или т. д.

$get = $call->process("SELECT UnqId FROM table1
                     WHERE QId = ? AND UnqId = ?", 
                     array($_SESSION['Q'], $_SESSION['U']));
if($get) //if table exists
{
$call->process("UPDATE table1 SET col3 = ?, col4 = UTC_TIMESTAMP() 
              WHERE QId = ? AND UnqId = ?", 
                  array('OK', $_SESSION['Q'], $_SESSION['U']));
}
else
{
$call->process("INSERT INTO table1 VALUES (?, ?, ?, UTC_TIMESTAMP(),
               NULL, NULL, NULL, NULL)", 
                  array($_SESSION['Q'], $_SESSION['U'], 'OK'));
}

  • Если вы используете mysql, вы можете взглянуть на INSERT ON DUPLICATE KEY UPDATE, это прекрасно! Но имейте в виду, что если вы смените базу данных, это будет только mysql 01.08.2013
  • @Dale, но как я могу сделать однострочный запрос из трех запросов? включая оператор SELECT.. 01.08.2013
  • Я не уверен, что вы можете, вы бы сначала запустили свой выбор, а затем создали вставку/обновление одной строки на основе документации по ссылке в моем предыдущем комментарии. 01.08.2013
  • @Dale, в подзапросе sql есть вещь «EXISTS», но я не знаю, как ее использовать .. 01.08.2013
  • Вот что такое Google для моего друга, удачи 01.08.2013

Ответы:


1

Вы можете использовать запрос, который использует ON DUPLICATE KEY UPDATE

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;
01.08.2013
  • но как объединить оператор «выбрать» с другими запросами 01.08.2013
  • Ваш выбор только для проверки правильности записи? 01.08.2013
  • да... должен ли я использовать "СУЩЕСТВУЮЩУЮ" вещь подзапроса sql 01.08.2013
  • поэтому вам не нужно использовать выбор в этом случае, ON DUPLICATE KEY UPDATE позаботится об этом за вас 01.08.2013
  • Конечно, вы должны создать уникальный индекс с этими двумя полями (QId и UnqId). 01.08.2013
  • @ElonThan, я хочу включить его в инструкцию SELECT. 01.08.2013
  • @DevZer0, что мне делать, если у меня есть сериализованные данные в моих повторяющихся контрольных значениях в инструкции LIKE this statement == › code INSERT INTO vwr1_wp_theme_config (theme_name, theme_key, theme_value) VALUES ('themename','widget_contactus_widget','a:2: {i:3;a:2:{s:5:title;s:0:;s:8:template;s:41:page-templates/side-widget-contact-us.php;}s:12: _multiwidget;i:1;}') ПРИ ОБНОВЛЕНИИ ДУБЛИКАЦИИ КЛЮЧА theme_value=VALUES(theme_value) code 18.06.2016

  • 2

    Проверьте синтаксис ON DUPLICATE KEY UPDATE, чтобы сделать это в одном запросе. И попробуйте поискать в следующий раз, например. «обновление mysql на дубликате».

    01.08.2013
    Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..