mysql语句删除字符串中重复的单词

时间:2018-05-08 03:12:12

标签: duplicates mariadb

我希望能够使用sql语句,如果字符串列“title”中有重复的单词,则允许我删除记录。 标题中有几个重复的单词,例如“世界癌症幸存者的宫颈癌存活率”我想搜索并删除这个字段,因为单词“癌症”重复。请注意,可能还有另一个我不知道重复的单词,因此我不仅要查找癌症单词。

table structure
table name hospital
ID Varchar(32) utf8_general_ci
Title Varchar(300) utf8_general_ci
Summary Varchar(300) utf8_general_ci

1 个答案:

答案 0 :(得分:1)

(这适用于MariaDB,而不是MySQL。)

这将匹配':

[[:<:]]\w+[[:>:]]

由于您拥有MariaDB,因此可以使用此反向引用:

\1

所以,这应该与title匹配一个重复的单词:

title REGEXP [[:<:]](\w+)[[:>:]].*[[:<:]]\1[[:>:]]

(根据上下文,您可能需要加倍反斜杠。)

参考:https://mariadb.com/kb/en/library/pcre/
另请参阅REGEXP_REPLACE()https://mariadb.com/kb/en/library/regexp_replace/