用另一个查询的随机值更新mysql表?
Posted
技术标签:
【中文标题】用另一个查询的随机值更新mysql表?【英文标题】:update mysql table with random value from another query? 【发布时间】:2011-07-12 20:36:38 【问题描述】:我在重新分级查询时遇到问题,该查询将使用用户表中的另一个随机值更新收入表。 执行查询时它什么也不做
$update = mysql_query("UPDATE earnings SET userid = (SELECT ID FROM users WHERE installid is NULL ORDER BY rand()) WHERE userid='0'");
在第二个查询中
SELECT ID FROM users WHERE installid is NULL ORDER BY rand()
它会给我一个随机的用户 ID,其中 installid 为空
【问题讨论】:
【参考方案1】:您是否在 phpMyAdmin 等中尝试过该查询?你有错误吗?
你试过了吗:
SELECT ID FROM users WHERE installid is NULL ORDER BY rand() LIMIT 1
这样完整的查询就变成了:
UPDATE earnings SET userid = (SELECT ID FROM users WHERE installid is NULL ORDER BY rand() LIMIT 1) WHERE userid='0'
但请记住,您最终可能会在收益表中出现重复的用户 ID 值。
【讨论】:
我没有尝试使用 phpMyAdmin,但您的解决方案就像魅力一样,谢谢 @Fouad 很高兴知道它有效。请记住,PHP 不会在更新查询中显示任何错误。您已经明确处理了查询失败的情况,例如在调用mysql_query()
后添加 or die(mysql_error())
如果想要编辑此查询以使 WHERE userid= 位于用户表中的归档 ID 怎么办?
对不起,我的意思是(SELECT ID FROM users WHERE installid is NULL AND ID=userid ORDER BY rand() LIMIT 1)userid 是收入表中的另一个字段
@Fouad 我不确定我是否正确理解了您想要什么,最好您开始一个新问题并在其中详细说明您现在正在尝试做什么。跨度>
以上是关于用另一个查询的随机值更新mysql表?的主要内容,如果未能解决你的问题,请参考以下文章
用另一个 MySQL 表的值更新一个 MySQL 表(原始表的数据类型是 JSOn)
MySQL 用另一个表的值更新一个表 - 我可以在 bigquery 中使用它吗?