簡體   English   中英

在 MySQL 中使用 rand() 將值從一個表更新到另一個表

[英]UPDATE values from a table to another using rand() in MySQL

我有 2 個表,我需要為uid = 0 UPDATE table1的值。

這是我的表:

表一:游戲

id      | uid     | 
--------+---------+
1       | 5       | 
2       | 7       | 
3       | 0       | 

表2:用戶

idu     | name    | 
--------+---------+
1       | todd    | 
2       | mario   | 
3       | luigi   | 

所以基本上我需要用 1-3 之間的隨機數( table2 idu值) UPDATE table1的第三行的uid值。

為了這個目的,我嘗試了這個:

UPDATE games (uid)
SET idu = ORDER BY rand() LIMIT 1 FROM users
WHERE uid = 0;

為什么它不起作用?

為什么你不能喜歡

UPDATE games SET uid = (
select idu from users ORDER BY rand() LIMIT 1)
WHERE uid = 0;

根據您的評論,在這種情況下使用復合條件。 因此,在您的情況下,也可以在類似條件下使用ID

WHERE uid = 0 AND ID = 3;

考慮到您的ID列是主鍵/唯一鍵列,這將確保只有ID = 3行得到更新。

我想這可能對你有幫助

SELECT @idu := idu FROM users ORDER BY RAND() LIMIT 1;
UPDATE games SET uid = @idu WHERE uid = 0;

但是,這將使用相同的隨機獲取的 users.idu 更新 games.uid = 0 的所有行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM