我有2个表格,我需要UPDATE
table1
的值uid = 0
。
这是我的表格:
table1:游戏
id | uid |
--------+---------+
1 | 5 |
2 | 7 |
3 | 0 |
table2:用户
idu | name |
--------+---------+
1 | todd |
2 | mario |
3 | luigi |
所以基本上我需要UPDATE
uid
第3行的table1
值,其随机数介于1-3 idu
table2
之间})。
为此,我尝试了这个:
UPDATE games (uid)
SET idu = ORDER BY rand() LIMIT 1 FROM users
WHERE uid = 0;
为什么它不起作用?
答案 0 :(得分:2)
为什么你不能这样做
setNeedsLayout
根据您的评论,在这种情况下使用复合条件。因此,在您的情况下,请使用UPDATE games SET uid = (
select idu from users ORDER BY rand() LIMIT 1)
WHERE uid = 0;
列,条件如
ID
考虑到您的WHERE uid = 0 AND ID = 3;
列是主键/唯一键列这一事实,这将确保只有ID = 3
行才会更新。
答案 1 :(得分:1)
我想这可能对你有帮助
SELECT @idu := idu FROM users ORDER BY RAND() LIMIT 1;
UPDATE games SET uid = @idu WHERE uid = 0;
但是,这将使用相同的随机获取的users.idu
更新games.uid = 0的所有行。