我希望能够使用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
答案 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/