【问题标题】:Update multiple columns in MySql with results from a SELECT statement使用 SELECT 语句的结果更新 MySql 中的多个列
【发布时间】:2023-02-08 19:05:20
【问题描述】:

背景:我有一个包含地址列的订单表。我想用从临时表中随机选择的地址更新这些

两个表都包含 address、address1、city 和 postcode 列

我在想查询会是这样的:

UPDATE orders (address, address1, city, postcode)
VALUE
(SELECT address, address1, city, postcode
FROM addresses
ORDER BY RAND()
LIMIT 1)

编辑:请注意,它需要用不同的值更新所有行。

【问题讨论】:

  • 使用多表更新语法。

标签: mysql


【解决方案1】:
UPDATE orders 
JOIN ( SELECT address, address1, city, postcode
       FROM addresses
       ORDER BY RAND()
       LIMIT 1 
       ) AS newdata
SET orders.address = newdata.address,
    orders.address1 = newdata.address1,
    orders.city = newdata.city,
    orders.postcode = newdata.postcode
WHERE orders.id = 72;

【讨论】:

  • 您的答案对一行非常有效,但是当我删除末尾的 where 子句时,所有行都获得相同的数据。我需要每一行都是地址表中不同的随机选择。
猜你喜欢
  • 2010-11-03
  • 2012-11-25
  • 2018-07-29
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多