mysql表中有一个文本字段,填充方式如下:
ID TEXT 1 horse cat cow 2 zebra 3 pig goat dog
如果文本字段中包含单词cat,则需要删除该行。我该怎么做?
6jjcrrmo1#
这并不像看上去那么容易。有几种可能的情况: 'cat' 可能出现在正文的中间,或正文的开头,或结尾。它也可能单独出现在文本中。幸运的是,您运行的是mysql 8.0,因此我们可以使用 regexp_replace() . 我建议两个通行证,像这样:
'cat'
regexp_replace()
select id, regexp_replace( regexp_replace(text, '(\n|^)cat(\n|$)', '\n'), '^\n|\n$', '' ) new_text from mytable t
这应该妥善处理所有案件。假设以下示例数据:查询返回:在db小提琴上演示。旁注:你可以把这个变成一个 update 如果需要的话。
update
update mytable set text = regexp_replace( regexp_replace(text, '(\n|^)cat(\n|$)', '\n'), '^\n|\n$', '' )
1条答案
按热度按时间6jjcrrmo1#
这并不像看上去那么容易。有几种可能的情况:
'cat'
可能出现在正文的中间,或正文的开头,或结尾。它也可能单独出现在文本中。幸运的是,您运行的是mysql 8.0,因此我们可以使用
regexp_replace()
. 我建议两个通行证,像这样:这应该妥善处理所有案件。假设以下示例数据:
查询返回:
在db小提琴上演示。
旁注:你可以把这个变成一个
update
如果需要的话。