可以用于启动MySQL查询吗?

Som*_*ent 1 mysql if-statement

我有一个看起来像这样的查询:

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());
Run Code Online (Sandbox Code Playgroud)

但它死了,mysql告诉我检查附近的语法 IF EXISTS(....)

我们可以不使用IF语句来启动mysql查询吗?

[编辑]感谢您的ON DUPLICATE KEY UPDATE提示,但如果表中没有任何主键或唯一键怎么办?

先感谢您.

Mch*_*chl 5

不,你不能这样做(除非在存储过程中,即使那时语法也会不同)

检查INSERT INTO ... ON DUPLICATE KEY UPDATE语法

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