在从不同的其他字段合并之后,我正在尝试清理数据-特别是删除多个分隔符。。。但它会影响0条记录(几千条记录中的一条)
UPDATE CONTACTS
SET NOTES = REPLACE(NOTES, "%- - - -%", "-")
WHERE NOTES = 53388 LIMIT 1
“where”只是用来测试的。
前面的示例
ID | NOTES
1 | - - - - Hi there
2 | Sun is hot today - - - -
3 | Nice - - - - to be on stackoverflow
4 | This record is just - fine.
要求的结果
ID | NOTES
1 | Hi there
2 | Sun is hot today
3 | Nice to be on stackoverflow
4 | This record is just - fine.
我检查了一遍又一遍,但不知道我做错了什么。
它不影响多行或单个行。
这个领域是长期的,这有什么区别吗?
有什么想法吗?
2条答案
按热度按时间2nc8po8w1#
你可以试试这个:
结果:
之前:
之后:
ztyzrc3y2#
你想替换这个
%- - - -%
与-
. 在您的示例数据中没有%
标志。你可能把它弄错了%
一个符号,它匹配任何由零个或多个字符组成的序列LIKE
表情。只需使用它,不带百分号,如果需要,在前面/后面添加额外的空格:
如果您需要更复杂的逻辑,并且有mysql版本8.0+,那么您可以使用
REGEXP_REPLACE
功能。