【问题标题】:update mysql table with random value from another query?用另一个查询的随机值更新mysql表?
【发布时间】: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 为空

【问题讨论】:

    标签: php mysql


    【解决方案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 我不确定我是否正确理解了您想要什么,最好您开始一个新问题并在其中详细说明您现在正在尝试做什么。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    相关资源
    最近更新 更多