MySQL更新。。在……的什么地方。。兰德()。。极限

MySQL更新。。在……的什么地方。。兰德()。。极限,mysql,random,sql-update,Mysql,Random,Sql Update,好吧,这是个奇怪的问题,我知道: UPDATE `entries` SET `winner` = 1 WHERE `subscriber_id` IN (19, 128, 127, 125, 150) ORDER BY RAND() LIMIT 3 subscriber\u ids明确显示,所有获奖者字段值均为0 有时它会更新所有3行,有时会更新更少,而且可能发生的情况是它不会更新任何内容 当我在这个查询中使用EXPLAIN时,它给出了完全无用的错误代码:1064。您的SQL语法有错误错误 你

好吧,这是个奇怪的问题,我知道:

UPDATE `entries`
SET `winner` = 1
WHERE `subscriber_id` IN (19, 128, 127, 125, 150)
ORDER BY RAND()
LIMIT 3
subscriber\u id
s明确显示,所有获奖者字段值均为0

有时它会更新所有3行,有时会更新更少,而且可能发生的情况是它不会更新任何内容

当我在这个查询中使用
EXPLAIN
时,它给出了完全无用的
错误代码:1064。您的SQL语法有错误错误

你能确认(或否认)我的查询是有效的吗?为什么会产生上述不同的结果


提前感谢

您能否确认所有获奖者字段不同于1。可能是它试图更新已设置为1的行。否则就没问题了。EXPLAIN语句仅适用于早于5.6的MySQL服务器上的SELECT语句,因此这可能是它失败的原因

Yes,所有获胜者字段都是0。