2016-04-25 90 views
1

我想設置一個字段不同的文本 我想那種代碼UPDATE ORDER BY RAND()的限制100

SET @rand = 100; 
UPDATE myTable SET name = 'a' ORDER BY RAND() LIMIT @rand; 
UPDATE myTable SET name = 'b' ORDER BY RAND() LIMIT @rand; 
UPDATE myTable SET name = 'c' ORDER BY RAND() LIMIT @rand; 

我得到一個錯誤

1221 - 錯誤UPDATE和秩序的使用情況

感謝幫助

回答

0

我作爲sume你想用隨機值更新一個表格列。你可以簡單地爲此查詢update查詢。

$sql_update = "UPDATE table_name SET column_name=RAND()" 

這將更新您的整個表與rand值。如果你想自定義隨機值你分配給變量和組織。

+0

我不是在尋找一個蘭特編號,但爲不同的文本在字段'name' –

1

你爲什麼要更新RAND()。它會減慢你的更新?按照主鍵索引列進行排序。這是一個性能殺手。

當你確切知道你想一次更新多少條記錄時,設置@rand = 100有什麼意義?

我假設你有一個名爲ID

update myTable set name = 'a' order by id desc limit 100; 
update myTable set name = 'b' order by id desc limit 100; 
update myTable set name = 'c' order by id desc limit 100; 
+0

謝謝,但我不希望通過整理ID列,它應該是完全蘭德() 它並不重要如果它很慢或沒有,我一次做 –

+0

@ErickBoileau - 很酷,然後使用rand()。 – MontyPython

+0

與RAND我得到一個錯誤,它與緩慢或沒有關係無關 –

0

它的工作原理主鍵!

UPDATE myTable SET name = 'a' ORDER BY RAND() LIMIT 100; 

問題出在我複雜的INNER JOIN中。

+1

當你從你的問題中排除了一個連接的細節時,任何人都不可能得到你正確的答案。在這種情況下,您是否願意編輯您的問題幷包含您使用的實際查詢?由於在當前狀態下的這個問題和答案沒有服務於未來的用戶 –

+0

問題也出現在SET @rand = 100; –

+0

即使如此,你還沒有解釋什麼是錯的? –