[英]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.