查询用另一个表中的另一个随机记录更新记录?

时间:2011-07-12 21:41:30

标签: php mysql

我在此查询中遇到小问题

$update = mysql_query("UPDATE earnings SET userid = (SELECT ID FROM users WHERE installid is NOT NULL ORDER BY rand() LIMIT 1) WHERE userid='0'");

此查询在值为“0”时更新收入表中的用户ID 我需要做的是更新用户表中未找到的用户ID 例如 收益表有5个条目,其中userid = 10 在users表中找不到用户标识10,用户表中有这些id(1'2'3'4'5) 然后更新此userid,其值为10,其中包含在users表中找到的任何ID,并且installid不能为空

1 个答案:

答案 0 :(得分:1)

我想客户会希望他们的所有收入数据都是相关的,而不是完全随机的(如果数据是随机的,有些人你不知道哪些,都是数据已损坏)。也就是说,查询可以通过

获得您想要的位置
UPDATE earnings SET userid = (SELECT ID FROM users WHERE installid is NOT NULL ORDER BY rand() LIMIT 1) WHERE userid NOT IN (SELECT ID FROM users)

我要做的是在ID上放一个外键,防止随机数据被写入。我看不到一个解决方案,其中随机ID比没有那些行更好。如果ID不重要,为什么要这么做?

相关问题