Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过通配符使用LIKE和IN进行SQL查询_Sql_Select - Fatal编程技术网

通过通配符使用LIKE和IN进行SQL查询

通过通配符使用LIKE和IN进行SQL查询,sql,select,Sql,Select,我有一个数据库表,用户可以在其中使用大量变量筛选单个列,目前我的sql查询字符串如下所示: SELECT * FROM TABLE1 WHERE COLUMN1 LIKE '%APPLE%' AND COLUMN1 LIKE '%ORANGE%' AND COLUMN1 LIKE '%GRAPE%' AND COLUMN1 LIKE '%LEMON%' AND COLUMN1 LIKE '%LIME%' AND COLUMN1 LIKE '%TOMATO%' AND COLUMN1 LIKE

我有一个数据库表,用户可以在其中使用大量变量筛选单个列,目前我的sql查询字符串如下所示:

SELECT * 
FROM TABLE1
WHERE COLUMN1 LIKE '%APPLE%'
AND COLUMN1 LIKE '%ORANGE%'
AND COLUMN1 LIKE '%GRAPE%'
AND COLUMN1 LIKE '%LEMON%'
AND COLUMN1 LIKE '%LIME%'
AND COLUMN1 LIKE '%TOMATO%'
AND COLUMN1 LIKE '%POTATO%'
...
实现起来很困难,尤其是当我在表适配器中使用参数化查询字符串来创建最终有20个参数的fill和get方法时


有没有更好的方法(比如使用IN命令,所以我只需要一个参数)?

也许
正则表达式
可以帮助您:

SELECT * 
FROM TABLE1
WHERE COLUMN1 LIKE '%[a-z]%'
如果使用
sql server
请尝试
CONTAINS

SELECT * 
FROM TABLE1
WHERE CONTAINS(COLUMN1, 'APPLE AND ORANGE')

您可以找到更多信息。

也许
正则表达式将帮助您:

SELECT * 
FROM TABLE1
WHERE COLUMN1 LIKE '%[a-z]%'
如果使用
sql server
请尝试
CONTAINS

SELECT * 
FROM TABLE1
WHERE CONTAINS(COLUMN1, 'APPLE AND ORANGE')

您可以找到更多信息。

如果这是您应该查看的Microsoft SQL server,或者您正在使用SQL 2012。有许多方法可以比相似匹配更有效地搜索单词。

如果您使用的是Microsoft SQL server,或者您使用的是SQL 2012,那么您应该查看这些方法。有许多方法可以比相似匹配更有效地搜索单词。

这是不等价的:例如,他的查询将捕获字母数字值,而您的正则表达式不会。这是不等价的:例如,他的查询将捕获字母数字值,而您的正则表达式不会。类似于-@BillKarwin有一个很好的答案()我曾经做过类似的事情。@Tony-你必须更具体一点:“用户可以使用大量变量筛选单个列”-哪些变量?请提供一些有效输入的示例,以及刚刚更新的问题,以使其更清晰。您在这里实际想做什么?如果你在一个专栏中搜索单词,你可能想考虑一个全文索引。< TabLE1中的代码>选择*,其中包含(CulnN1,‘橙子’或苹果’或‘西红柿’)< /C> >将返回所有包含这些词的所有列,类似于-@ BillKarwin有一个很好的答案。我曾经做过类似的事情。@Tony-你必须更具体一点:“用户可以使用大量变量筛选单个列”-哪些变量?请提供一些有效输入的示例,以及刚刚更新的问题,以使其更清晰。您在这里实际想做什么?如果你正在搜索一个列中的单词,你可能想考虑一个全文索引。< TabLE1中的代码>选择*,其中包含(CulnN1,橙子或苹果或西红柿)< /C> >将返回包含这些词的所有列。