SQL 中的动态 Like 语句
我已经绞尽脑汁思考如何做到这一点有一段时间了,我知道这个网站上的一些天才会找到答案。基本上我正在尝试这样做:
SELECT column
FROM table
WHERE [table].[column] LIKE string1
OR [table].[column] LIKE string2
OR [table].[column] LIKE string3...
获取存储在表的列中的搜索字符串列表。显然我不能手动为每个字符串执行类似的语句,因为我希望表是动态的。
任何建议都会很棒。 :D
编辑:
我正在使用 MSSQL :(
I've been racking my brain on how to do this for a while, and i know that some genius on this site will have the answer. Basically i'm trying to do this:
SELECT column
FROM table
WHERE [table].[column] LIKE string1
OR [table].[column] LIKE string2
OR [table].[column] LIKE string3...
for a list of search strings stored in a column of a table. Obviously I can't do a like statement for each string by hand because i want the table to be dynamic.
Any suggestions would be great. :D
EDIT:
I'm using MSSQL :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将参数(string1、string2、string3...)放入表 (
Params
),然后使用LIKE
JOIN
到表中>JOIN 子句例如Put the parameters (string1, string2, string3...) into a table (
Params
) thenJOIN
to the table usingLIKE
theJOIN
clause e.g.制作一个示例表_1:
要查找您编码的所有 Freds 和 Jos,
您想要的是动态 WHERE。您可以通过将通配符放入 Table_2:
执行 LIKE来实现此目的:
并使用 INNER JOIN:结果
Make a sample Table_1:
To find all the Freds and Jos you code
What you'd like is a dynamic WHERE. You can achieve this by putting the wildcards in Table_2:
and performing the LIKE with an INNER JOIN:
Result:
听起来您正在尝试进行全文搜索。 MySQL 有一个用于此目的的工具:
http://dev.mysql.com/doc/refman/5.0 /en/fulltext-boolean.html
对于 MSSQL,可在以下位置获取一些信息
http://msdn.microsoft.com/en-us/library/cc879300.aspx
Sounds like you are trying to do a fulltext search. MySQL has a tool for this:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html
In case of MSSQL some information is available at
http://msdn.microsoft.com/en-us/library/cc879300.aspx