mysql - SQL - 更新 select 语句中的记录

标签 mysql sql sql-update

假设您要连接两个表,但您选择的列之一要用新值更新,您是否必须将其作为两个单独的语句来执行,或者您可以在选择查询中嵌入更新语句吗?

SELECT table1.xxx, table1.yyy, table2.zzz
FROM table1 JOIN
      table2
     ON table1.xxx = table2.zzz
WHERE table1.xxx = 'Y'

UPDATE table1
    SET xxx = 'YES'
    WHERE xxx = 'Y'

这是否有意义,或者您是否需要执行更新语句然后单独执行选择查询?

最佳答案

如果您需要连接来过滤需要更新的行,您可以使用 Update with join 例如:

  UPDATE table1
  JOIN  table2  ON table1.xxx = table2.zzz
  SET table1.xxx = 'YES'
  WHERE table1.xxx = 'Y'

关于mysql - SQL - 更新 select 语句中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47123246/

相关文章:

php - MYSQL 按邮政编码搜索

php - 如何在 Where 语句中多次使用 OR?

sql - 在oracle SQL查询中使用字符串包含函数

MySQL - 使用所选内容更新行

mysql - DISTINCT 的替代方法

mysql - 使用 GROUP BY 检索满足条件的记录

sql - 使用另一个表的记录作为 WHERE 参数更新一个表中的记录

Mysql更新只从第一行获取数据,是bug吗?

php - 使用php从sql表中提取列

SQL 服务器 : join tables causes the data to duplicate on every row