MySQL оператор удалить повторяющиеся слова в строке - PullRequest
0 голосов
/ 08 мая 2018

Я хотел бы иметь возможность использовать оператор SQL, который позволяет мне удалить запись, если в строковом столбце "заголовок" есть повторяющиеся слова. В заголовке есть несколько повторяющихся слов, например, «выживаемость при раке шейки матки в мире». Я хотел бы найти и удалить это поле, потому что слово «рак» повторяется. Обратите внимание, что может быть другое слово, которое я не знаю, повторяется, поэтому я ищу не только слово "рак".

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 голосов
/ 22 мая 2018

(Это относится к 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...