Можно ли использовать IF для запуска запроса MySQL? - PullRequest
1 голос
/ 22 декабря 2010

У меня есть запрос, который выглядит так:

mysql_query("IF EXISTS(SELECT * FROM predict WHERE uid=$i AND bid=$j)
            THEN UPDATE predict SET predict_tfidf=$predict_tfidf WHERE uid=$i AND bid=$j
            ELSE INSERT INTO predict (uid, bid, predict_tfidf) VALUES('$i','$j','$predict_tfidf')
            END IF")or die(mysql_error());

Но он умирает, и MySQL подсказывает мне проверить синтаксис около IF EXISTS(....)

Разве мы не можем использовать оператор IF для запуска запроса mysql?

[EDIT] Спасибо за подсказку ON DUPLICATE KEY UPDATE, но что если у меня нет первичных или уникальных ключей в таблице?

Заранее спасибо.

1 Ответ

5 голосов
/ 22 декабря 2010

Нет, вы не можете этого сделать (если только в хранимой процедуре и даже тогда синтаксис будет другим)

Проверка INSERT INTO ... ON DUPLICATE KEY UPDATE синтаксис

http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...