Выбрать / обновить записи в одной таблице, которые похожи на слова, выбранные из другого столбца таблицы с несколькими записями - PullRequest
1 голос
/ 10 апреля 2020

Мне нужно найти записи в product.title, которые похожи на одно из многих слов. В настоящее время это выполняется длинным запросом, подобным следующему:

Select product.product_id, product.name from product WHERE product.name like '%word1%' OR product.name like '%word2%' OR product.name like '%word3%', etc (too many words).

Решено поместить эти слова в новую таблицу для более удобного управления и создать запрос с записями из этой таблицы

TABLE banned_words.word
word1
word2
word3
etc

Я пробовал GROUP_CONCAT с разделителем до и после banned_words.word, чтобы я мог использовать его в подзапросе, но результат был больше, чем ограничение в 1024 символа. Я не думаю, что я могу использовать соединение с подстрокой

Есть предложения?

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете использовать оператор exists:

SELECT product.product_id, product.name
FROM   product
WHERE  EXISTS (SELECT *
               FROM   banned_words
               WHERE  product.name LIKE CONCAT('%', word, '%')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...