2013-08-19 3 views
0

Я хочу искать одно и то же поле, но в нескольких значениях, используя REGEXP. Возможно ли это?Запрос с несколькими LIKE с условием AND с использованием REGEXP

SELECT 
    * 
FROM 
    posts 
WHERE keyword LIKE '%ipad%' 
    AND keyword LIKE '%iphone%' 
    AND keyword LIKE '%nokia%' ; 

этот запрос является использование для OR, я хочу, чтобы преобразовать его в состояние И

SELECT * FROM posts WHERE keyword REGEXP 'ipad|iphone|nokia'; 
+0

Не стоит. Вы получите более 3-х раз более медленный запрос –

ответ

0

Может ли ваш keyword поле содержит несколько значений (устройств)? Мне нравится ipad;iphone;nokia?

Если это так, это плохая практика. Он нарушает первую нормальную форму, и это признак плохого дизайна таблицы. Тем не менее, способ, которым вы это делали с несколькими статьями LIKE и AND, должен работать.

Преобразование этого в синтаксис REGEXP в MySQL не так просто и определенно не стоит проблем. См. Это post для более подробной информации.

+0

его не работает сэр, я думаю, что вы не могли понять мой вопрос –

+0

Если поле 'keyword' имеет только одно значение для каждой строки, то то, что вы пытаетесь сделать, невозможно. – ktm5124

+0

Поле ключевого слова имеет несколько значений или подобно текстовому полю hai. –