2015-02-26 2 views
0

Я получил эту ошибку в моей команде sql. Я не могу понять причину. пожалуйста помогите.MySQL сказал: Ошибка # 1064 - при использовании условия IF в sql

if (SELECT * FROM `teams` WHERE `client_id`='3' and `member_id`='6' and `current`='1') then 
begin 
UPDATE `teams` SET `current`='0' WHERE `client_id`='3' and `member_id`='6' and `current`='1' 
end ; 
else 
begin 
INSERT INTO `teams`(`client_id`, `member_id`) VALUES ('3','33') 
end; 
end if; 

здесь я пытаюсь обновить столбец current если установлено 1, иначе вставить новую запись.

I need to use this sql command in my php file when a form is submitted.

ниже сообщение об ошибке:

#1064 - You have an error in your SQL syntax;

+0

какая ошибка? это заявление sql ... – RickyA

+0

Насколько я знаю в MySQL, вы можете использовать 'IF .. ELSE' внутри хранимой процедуры или функции. Вы также не можете использовать 'EXISTS' таким образом, вам нужно будет использовать' IF (SELECT EXISTS (команды SELECT * FROM)) '- См. [Этот ответ] (http://stackoverflow.com/q/1676551/ 1048425) для более подробной информации. – GarethD

+0

ok @GarethD, я обновляю его. хорошо, я не очень хорош в sql. ;) –

ответ

0

Это не является допустимым заявление в MySQL, действительный синтаксис будет ниже. Также if-else разрешено в хранимой процедуре, функциях или триггерах.

if (SELECT * FROM `teams` WHERE `client_id`='3' and `member_id`='6' and `current`='1') then 
begin 
    UPDATE `teams` SET `current`='0' WHERE `client_id`='3' and `member_id`='6' and `current`='1' 
end ; 
else 
begin 
    INSERT INTO `teams`(`client_id`, `member_id`) VALUES ('3','33') 
end; 
end if; 
+0

по-прежнему та же ошибка –

+0

Является ли код частью хранимой процедуры или вы пытаетесь найти что-то еще? –

+0

эй @ Абхик, я очень слабый в sql, поэтому я понятия не имею о 'хранимых процедурах'. Мне нужно использовать команду sql в моем php-файле при отправке формы. Однако я пытаюсь использовать его непосредственно в phpmyadmin для тестирования. –

0

Весь набор утверждений может быть сделано с одной INSERT...ON DUPLICATE KEY UPDATE... заявление.

+0

, пожалуйста, предложите пример или запрос. –