SQL-запрос с несколькими предложениями Like - PullRequest
2 голосов
/ 14 июля 2010

Я хотел бы создать SQL-запрос, который выполняет следующие действия. - У меня есть несколько параметров, например, «Джон», «Смит» - Теперь у меня есть таблицы статей со столбцом содержимого, который я быкак искать - Теперь, как я могу найти строки в таблице статей, которая имеет любое из этих значений ("Джон", "Смит")

Я не могу использовать содержимое LIKE "% john% или содержание НРАВИТСЯ "% smith%", так как может быть любое количество входящих параметров.

Не могли бы вы, ребята, скажите мне, как это сделать .... Спасибо

Ответы [ 4 ]

6 голосов
/ 14 июля 2010

Рассматривали ли вы полнотекстовый поиск?

1 голос
/ 14 июля 2010

Хотя решение HLGEM является идеальным, если полнотекстовый поиск невозможен, вы можете создать регулярное выражение, которое вы можете проверять только один раз в строке.Как именно вы это сделаете, зависит от используемой вами СУБД.

0 голосов
/ 14 июля 2010

Если полнотекстовый поиск излишний, рассмотрите возможность помещения параметров в таблицу и используйте условие LIKE in the JOIN`, например.

SELECT * -- column list in production code
  FROM Entities AS E1
       INNER JOIN Params AS P1
          ON E1.entity_name LIKE '%' + P1.param + '%';
0 голосов
/ 14 июля 2010

Это во многом зависит от используемой вами СУБД.Как правило, если вы не хотите использовать полнотекстовый поиск, вы почти всегда можете использовать регулярные выражения для достижения этой цели.Для MySQL см. эту страницу руководства - у них даже есть пример ответа на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...