2013-09-11 6 views
0

Есть ли способ объединить вставку, обновление и выбрать запрос в один?Комбинация вставки, обновления и выбора в MySQL

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

Как я могу это сделать?

+0

Посмотрите «вставить в дубликат ключевое обновление» в документации. –

+0

, на котором используется язык сценариев? – bhawin

+0

Посмотрите на это: http://stackoverflow.com/questions/14259249/mysql-insert-or-update-if – mavroprovato

ответ

0

Нет, это не представляется возможным, в контексте одного оператора SQL.

В одно заявление можно комбинировать и вставлять INSERT и UPDATE. Оператор INSERT ... ON DUPLICATE KEY UPDATE будет в основном пытаться ВСТАВИТЬ строку, и если эта вставка приведет к исключению «дублирующегося ключа», вместо этого будет выполнено действие UPDATE.

Но с точки зрения тестирования некоторых общих условий с инструкцией SELECT, а затем запускать INSERT или UPDATE в зависимости от результата запроса, ответ отрицательный, MySQL не имеет синтаксиса одного синтаксиса для поддержки этого.

+0

INSERT ... ON DUPLICATE KEY UPDATE работал просто отлично :) СПАСИБО! – hearmeroar

0

хранимая процедура является ответом и IF/ELSE

+0

можно ли поставить условие if/else в запрос mysql? извините за немой вопрос, но так ли? – hearmeroar

+0

в SELECT только IF или CASE ... нет IF/ELSE. Я предлагал IF/ELSE в случае хранения procs. – jaczes

Смежные вопросы