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").