我偶然发现了一个问题,据说应该在单个 MySQL 查询中提供有效的解决方案,但我无法弄清楚(唉,我离 MySQL 专家还很远)。
该表具有以下列:A、B、C。(A、B)是主键(INT)。C - 是一个字符串。该表填充有记录。
在某些情况下,我需要将x
A 列中的值更新为新值y
。如果 A 中已经有一些记录y
(可以同时有多个,对于 B 中具有不同值的记录),则出现“重复键”情况。在这种情况下,我需要为每个特定的b
.
例子:
| 一个 | 乙| C | 1 | 2 | 美国广播公司 | 1 | 4 | 国防军 | 2 | 2 | 全球健康指数 | 2 | 4 | JKL | 2 | 5 | 移动网络运营商
在 A 中更新为 2 -> 1 后,我需要得到:
| 一个 | 乙| C | 1 | 2 | ABCGHI | 1 | 4 | DEFJKL | 1 | 5 | 移动网络运营商
有一个众所周知的INSERT ... ON DUPLICATE KEY UPDATE
说法。但是如何优雅地处理更新中的相同问题呢?我不确定REPLACE
语句或REPLACE
函数是否以及如何用于该任务。
提前致谢。