用于更新的 MySql UNION

标签 mysql union

有没有一种方法可以使用单个 SQL 查询为每行更新具有不同值的多行?我必须用不同的数据更新多行中的一个列。对每一行使用单独的更新查询似乎过多,所以如果可能的话,我想将这个过程合并到一个 SQL 语句中,或者至少减少所需的查询数量。

我将 PHP 与 Zend 框架和 MySql 一起使用。

最佳答案

创建一个临时表并填充:

CREATE TEMPORARY TABLE temptable (id INTEGER, VALUE VARCHAR(200))

INSERT
INTO temptable
VALUES
  ('1', 'val1'),
  ('2', 'val2'),
  ('3', 'val3'),
  ('4', 'val4')

然后发出:

UPDATE
  mytable m, temptable t
SET m.value = t.value
WHERE m.id = t.id

关于用于更新的 MySql UNION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/546879/

相关文章:

php - laravel Eloquent 多个左连接

php - 如何使用 mysql EXISTS 返回 bool 值

php - MySQL 将时间 minutes_seconds 转换为秒

sql - 使用一个查询更新多行

mysql - 选择双重复

php - while 循环中的图像

php - 从 2 个表中选择行数并合并为一行(mysqli)

mysql - 在 NOT IN 内部使用 UNION

asp.net-mvc - Linq:模型未正确绑定(bind)到数据库 View (使用 UNION 查询)

MySQL 联合不是确定性的