要删除MySQL一列数据中的某个文字如何删除?

例如要删除图片中红框的文字,要保留其它的文字,几乎很多行都有这种文字,如何用正则表达式匹配删除红框的文字,保留其它的文字,不至于整行删除?

可以使用UPDATE语句中的REPLACE函数来删除MySQL一列数据中的某个文字。假设需要删除表mytable中column1列中的文字text_to_remove,可以使用以下语句:
UPDATE mytable
SET column1 = REPLACE(column1, 'text_to_remove', '')
WHERE column1 LIKE '%text_to_remove%';
这个语句会将column1列中所有包含text_to_remove文字的记录中的该文字删除,并将更新后的结果写回数据库。需要注意的是,这个语句会将整个column1列中包含该文字的记录都更新,如果需要精确匹配可以根据实际情况修改WHERE条件。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-05-06
假设有一列名为"text"的数据表,其中包含字符串"hello world"。要删除字符串中包含"world"的行,可以使用以下正则表达式:
Copy code^hello\s*world$

这个正则表达式匹配"hello"字符串开头,然后包含"world"的字符串结尾。注意,正则表达式中的"^"和"$"符号表示字符串的开头和结尾,respectively。
使用以下 SQL 语句可以删除匹配到的行:
Copy codeDELETE FROM table_name WHERE column_name =~ ^hello\s*world$;

将"table_name"替换为数据表的名称,将"column_name"替换为要删除的列的名称,即可删除包含"world"的行。
请注意,如果"world"在字符串的开头或结尾出现,而不是在中间,则需要使用不同的正则表达式。