我正在尝试在PHP中执行的查询中创建更新语句。虽然我没有太多的PHP经验,但我试过了。
这就是我现在所拥有的:
$query = "INSERT INTO scores VALUES ('$uid', '$name', '$score')
ON DUPLICATE KEY UPDATE 'score' = '$score';";
如何在此创建if语句?我已经尝试了这个:
$query = "INSERT INTO scores VALUES ('$uid', '$name', '$score')
ON DUPLICATE KEY UPDATE 'score' = if('$score' > 'score', '$score', 'score');";
答案 0 :(得分:0)
你可以这样做:
INSERT INTO scores (uid, name, score)
VALUES (?, ?, ?)
ON DUPLICATE KEY UPDATE score = (case when VALUES(score) > score THEN VALUES(score) ELSE score END);
注意:
insert
的所有列。随着时间的推移,这将为您带来许多悲伤。?
是什么 - 参数占位符。VALUES()
允许您检索要插入的值。方便一般;当你有多行时必须这样做。GREATEST()
很有吸引力,但如果值为NULL
,则返回NULL
。