具有多个like子句的SQL查询

时间:2010-07-14 18:31:58

标签: sql database

我想创建一个SQL查询,它执行以下操作。   - 我有几个参数,例如“John”,“Smith”   - 现在我有一个带有内容列的文章表,我想搜索它   - 现在,我如何找到articles表中的行,其中包含任何一个值(“John”,“Smith”)

我无法使用内容LIKE“%john%或content LIKE”%smith%“,因为可能有任意数量的传入参数。

你能告诉我一个方法吗? 感谢

4 个答案:

答案 0 :(得分:6)

您是否考虑过全文搜索?

答案 1 :(得分:1)

虽然HLGEM的解决方案是理想的,但如果无法进行全文搜索,您可以构建一个每行只能测试一次的正则表达式。具体取决于你正在使用的DBMS。

答案 2 :(得分:0)

这很大程度上取决于您使用的DBMS。通常 - 如果您不想使用全文搜索 - 您几乎总是可以使用正则表达式来实现此目标。对于MySQL,请参阅this manual page - 他们甚至可以回答您的问题。

答案 3 :(得分:0)

如果全文搜索过度,请考虑将参数放在表格中并使用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 + '%';