使用“LIKE"在SQL语句中查询句子中的单词,而不考虑其顺序
本文关键字:单词 句子 顺序 不考虑 查询 使用 quot LIKE 语句 SQL | 更新日期: 2023-09-27 18:03:06
想知道我如何在SQL语句中使用LIKE
,以便它返回我在搜索文本框中键入的句子中的单词,而不管它们键入的顺序。
这是我使用的代码,它只在单词顺序
时有效StringBuilder mystringBuilder = new StringBuilder(strSearch);
mystringBuilder.Replace(" ", "%");
QueryClause q = new QueryClause("AND", "IssueDescription", "LIKE", "%" + strSearch + "%", SqlDbType.VarChar, false);
colQueryClauses.Add(q);
q = new QueryClause("OR", "IssueTitle", "LIKE", "%" + mystringBuilder + "%", SqlDbType.VarChar, false);
colQueryClauses.Add(q);
如果你的文本框中有Word1和Word2,你可以像下面这样分割它们。
SELECT * FROM Table WHERE Column LIKE '%Word1%' AND Column LIKE '%Word2%'
但是你最好定义一个全文搜索并使用CONTAINS来查询
如果您想搜索多个单词,您可以使用如下命令:
SELECT
*
FROM
table
WHERE
(Column LIKE '%word1%') OR
(Column LIKE '%word2%') OR
(Column LIKE '%word3%')
如果您想获得包含所有单词的列而不是ANY,则可以将OR更改为AND
但是仍然不是很有用,因为你必须事先知道你要使用多少个单词作为参数。
也许你应该使用SQL Server的全文搜索功能link您可以使用以下命令搜索栏"bar"中的单词"foo":
WHERE Bar LIKE '%foo%'
这是你想要的吗?如果不是,你能举个例子吗?
希望有帮助,
约翰SELECT some_field
FROM some_table
WHERE some_field
LIKE '%first_value%'
OR some_field
LIKE '%second_value%'
...
在c#中,将搜索句子分成单词(使用空格字符作为分隔符)。然后创建一个字符串作为WHERE子句,如下所示:
"WHERE searchColumn LIKE '% " + splitString[0] + " %' AND searchColumn LIKE '% " + splitString[1] + " %'"
等等。使用for循环。将WHERE子句与SQL查询的其余部分连接并执行。