0

好的,这是一个奇怪的查询,我知道:

UPDATE `entries`
SET `winner` = 1
WHERE `subscriber_id` IN (19, 128, 127, 125, 150)
ORDER BY RAND()
LIMIT 3

subscriber_ids 肯定存在,所有获胜者字段值为 0。

有时它会更新所有 3 行,有时会更少,并且它可能不会更新任何内容。

当我EXPLAIN在这个查询中使用它时,它给了我完全无用的Error Code: 1064. You have an error in your SQL syntax;错误。

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

提前致谢

4

1 回答 1

0

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

于 2013-05-29T15:17:02.850 回答