Самый эффективный способ поиска сразу нескольких объектов с помощью SQL? - PullRequest
0 голосов
/ 13 марта 2012

Например, я хочу найти во всех записях «Sprite», «Pepsi» или «Coke» в названии / описании и вывести последние 3 результата.

------------------------------------------------
| ID | Title                 | Description     |
------------------------------------------------
| 1  | text text SPRITE text | text PEPSI xxx  |
| 2  | text text text text   | text text text  |
| 3  | text text SPRITE text | text COKE xxxx  |
| 4  | text text text text   | text text text  |
| 5  | text PEPSI text text  | text COKE xxxx  |
| 6  | text COKE text text   | text COKE xxxx  |
| 7  | text text text text   | text text text  |
| 8  | text text text text   | text text text  |
------------------------------------------------

Это самый эффективный запрос для этого?

SELECT *
FROM `table`
WHERE title LIKE '%Sprite%' OR description LIKE '%Sprite%'
      OR title LIKE '%Pepsi%' OR description LIKE '%Pepsi%'
      OR title LIKE '%Coke%' OR description LIKE '%Coke%'
ORDER BY 'id' DESC
LIMIT 3;

Или есть ли способ сделать это с MATCH AGAINST? (Я не мог найти способ) ..

Пример вывода:

------------------------------------------------
| 6  | text COKE text text   | text COKE xxxx  |
| 5  | text PEPSI text text  | text COKE xxxx  |
| 3  | text text SPRITE text | text COKE xxxx  |
------------------------------------------------

1 Ответ

1 голос
/ 13 марта 2012
SELECT *
FROM `table`
WHERE description regexp ('sprite|pepsi|coke')
ORDER BY 'id' DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...