gpt4 book ai didi

mysql - 更新包含 ID 的 mySQL 行

转载 作者:行者123 更新时间:2023-11-29 04:14:46 24 4
gpt4 key购买 nike

我有一个 mySQL 表,其中有一列 read_by,其中包含以下行:

-17-6
-11-8-6-62
-6
-6-22-45
-16-77
-31-3-6-24

这些是用户的 ID,每个 ID 都以破折号开头 -

现在我已经把用户6改成了136

如何更新每一行,只需将 6 更改为 136,记住可能有诸如 -16、-62、-167 等 ID,而 ID 6 位于不同的位置。

这里是 WHERE 条件:

WHERE read_by = "-6"
WHERE read_by LIKE "%-6"
WHERE read_by LIKE "-6-%"
WHERE read_by LIKE "%-6-%"



UPDATE messages SET [...] WHERE ...

如何更改确切的 6 并保持其余部分不变?

谢谢。

最佳答案

您需要在列中附加破折号以便过滤并在更新后将其删除:

update messages 
set read_by = trim(trailing '-' from replace(concat(read_by, '-'), '-6-', '-136-'))
where concat(read_by, '-') like '%-6-%'

参见 demo .
结果:

> | read_by      |
> | :----------- |
> | -17-136 |
> | -11-8-136-62 |
> | -136 |
> | -136-22-45 |
> | -16-77 |
> | -31-3-136-24 |

关于mysql - 更新包含 ID 的 mySQL 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57675614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com