2013-05-29 60 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