在我的MySQL数据库中,我有一些像这样的字符串:
I'm something, Infos S. 12
我要搜索的模式是:, Infos S.
,而不是数字(仅限数字),而不是字符串结尾。它不区分大小写。
如何搜索并删除它?
我有I'm something, Infos S. 12
,我想要I'm something
。
这是我到目前为止所做的:
UPDATE my_table SET title_col = REPLACE(title_col, SUBSTRING(title_col, LOCATE(', Infos S. ', title_col), LENGTH(title_col) - LOCATE(')', REVERSE(title_col)) - LOCATE(', Infos S. ', title_col) + 2), '') WHERE title_col LIKE '%(%)%';
如何休息?
修改 如果有另一个逗号则应该被忽略。
表示:I'm, something, Infos S. 12
(注意I'm
之后的逗号)应该I'm, something
。
答案 0 :(得分:1)
您可以使用regexp
检查列是否具有指定的模式,然后使用substring
将子字符串更新为,
。
UPDATE my_table
SET title_col = SUBSTRING(title_col,1,locate(', Infos',title_col)-1)
WHERE title_col regexp ', Infos S\\. [0-9]+$'
regexp
匹配默认情况下不区分大小写。如果您想区分大小写,请使用regexp binary
。
where title_col regexp binary ', Infos S\\. [0-9]+$'