可以用于启动MySQL查询吗?

时间:2010-12-22 07:49:31

标签: 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());

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

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

[编辑]感谢ON DUPLICATE KEY UPDATE小费,但如果表格中没有任何主键或唯一键,该怎么办?

提前谢谢。

1 个答案:

答案 0 :(得分:5)

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

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

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