mysql - SELECT 后一次 SQL UPDATE 多行
问题描述
我的样本表:
+------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------+------+-----+---------+-------+
| id | bigint(20) | YES | | NULL | |
| other_id | bigint(20) | YES | | NULL | |
| another_id | bigint(20) | YES | | NULL | |
+------------+------------+------+-----+---------+-------+
+------+----------+------------+
| id | other_id | another_id |
+------+----------+------------+
| 988 | 102 | NULL |
| 989 | 103 | NULL |
| 990 | 104 | NULL |
| 991 | 105 | NULL |
| 992 | 106 | NULL |
| 987 | 101 | NULL |
+------+----------+------------+
我将如何在一个查询中选择和更新上表,以对每一行执行类似的操作:
UPDATE
x
SET
another_id = 987
WHERE
id = 987
AND other_id = 101;
UPDATE
x
SET
another_id = 988
WHERE
id = 988
AND other_id = 102
我不想为每一行运行这样的手动更新,并希望一次完成所有操作。
解决方案
对我来说,您似乎只想将值设置 another_id
为id
:
UPDATE
x
SET
another_id = id
other_id
如果需要限制更新的行数,可以在 where 子句中提供一系列值:
UPDATE
x
SET
another_id = id
WHERE other_id IN (...) --list the values you want here.
推荐阅读
- rate-limiting - 关于 IP 的多个 API 的 Fastify-rate-limit
- javascript - 使用构造函数时如何检查是否调用了外部库中的方法?
- json - 需要在 VBA 中将 Excel 工作表转换为其 Json 格式
- javascript - AR.js/Three.js 使用多个 NFT 标记时性能不佳
- python - 如何在 Python 中注册 JDBC Spark 方言?
- amazon-web-services - G.1X 和 G.2X 的 AWS Glue 工作线程定价详细信息
- python-3.x - 纸浆优化,没有得到正确的数据
- flutter - Flutter:取消后端中间件中的流订阅
- scala - 即使在 intellij 中转储 maven 依赖项后,import scalatest 仍显示未解决
- javascript - 将数据传递给 Javascript,未捕获的 TypeError