用另一个查询的随机值更新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 中使用它吗?

MYSQL:我想用另一个表中的值更新表中的所有行,其中第一个表中的值等于第二个表

用另一个表中的随机条目更新表的列

用另一个表上的值更新新添加的列