2013-05-29 43 views
0

好吧,这是一个奇怪的查询,我知道:MySQL的UPDATE ..其中.. RAND().. LIMIT

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

subscriber_id s的绝对介绍,所有获奖者的字段值为0

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

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

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

在此先感谢

回答

0

你能确认所有赢家领域是大于1的不同可能是它试图更新已经被设置为1,否则看起来OK行。 EXPLAIN语句只适用于5.6以前的MySQL服务器上的SELECT语句,所以这可能是它失败的原因

+0

是的,所有赢家字段都是0。 – fabrik