gpt4 book ai didi

mysql - 第三个字符为 "_"时更新

转载 作者:行者123 更新时间:2023-12-01 00:38:07 25 4
gpt4 key购买 nike

我想以特定方式更新表 A 中的第 1 列:当列中的第三个字符是“_”时,我想插入前 2 个字符,如果第三个字符还有其他任何内容,我想保留它是。

例子:

|col1|                     
+--------+
|161_512 |
|16_1217 |
|161_512 |
|161512 |
|17_0117 |
|1615_12 |

预期结果:

|col1|                     
+--------+
|161_512 |
|16 |
|161_512 |
|161512 |
|17 |
|1615_12 |

这就是我到目前为止所得到的 - 但它无法正常工作:

UPDATE table A SET col1 = CASE WHEN col1 LIKE '%_%' THEN ... ELSE  col1;

最佳答案

如果您想匹配 LIKE 表达式中的文字下划线,您需要使用反斜杠对其进行转义。未转义的下划线表示匹配任何单个字符。但是,我会改写您的查询,使其使用 WHERE 子句来确定是否更新给定记录。

UPDATE table A
SET col1 = ...
WHERE col1 LIKE '__\_%'

请注意,LIKE __\_% 表示匹配任意两个字符,后跟文字下划线,再跟任何其他字符。

如果你觉得处理所有这些感觉不舒服,你总是可以使用子字符串来检查第三个字符的值:

UPDATE table A
SET col1 = ...
WHERE SUBSTRING(col1, 3, 1) = '_'

关于mysql - 第三个字符为 "_"时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42514111/

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