好的,这是一个奇怪的查询,我知道:
UPDATE `entries`
SET `winner` = 1
WHERE `subscriber_id` IN (19, 128, 127, 125, 150)
ORDER BY RAND()
LIMIT 3
明确显示 subscriber_id
,所有获胜者字段值均为0.
有时它会更新所有3行,有时甚至更少,并且可能发生它不会更新任何内容。
当我在此查询中使用EXPLAIN
时,它会给我一个完全无用的Error Code: 1064. You have an error in your SQL syntax;
错误。
您能否确认(或否认)我的查询是否有效?为什么会产生上述不同的结果?
提前致谢
答案 0 :(得分:0)
您能否确认所有获胜者字段不同于1.可能是它尝试更新已设置为1的行。否则看起来没问题。 EXPLAIN语句仅适用于早于5.6的MySQL服务器上的SELECT语句,因此这可能是它失败的原因