MySQL, где RLIKE любое слово предложения

У меня есть такая таблица:

+-------------+-------------------+----------------+
|id           | column1           | column2        |
+-------------+-------------------+----------------+
| 1           | apple iphone 6s   | iphone         |
| 2           | iphone apple 5    | apple iphone   |
| 3           | iphone 4          | samsung        |
| 4           | iphone 4          | apple iphone 6 |
+-------------+-------------------+----------------+

Как я могу вернуть все записи, где любое слово столбца1 включено в столбец2 с помощью выражения rlike? (в этом примере id=1,2,4)

Спасибо

1 ответ

Решение

Попробуй это:

SELECT * FROM tbl WHERE column2 RLIKE REPLACE(column1, ' ', '|')

REPLACE заменяет все вхождения ' ' на '|', что в сущности создает регулярное выражение, совпадающее со строками, содержащими любое из разделенных пробелами слов в column1 (например, "яблоко |iphone|6s").

Другие вопросы по тегам