想知道如何在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);
答案 0 :(得分:3)
如果你的文本框中有Word1和Word2,你可以拆分它们并使用如下所示。
SELECT * FROM Table WHERE Column LIKE '%Word1%' AND Column LIKE '%Word2%'
但您最好定义full text search并使用CONTAINS进行查询。
答案 1 :(得分:1)
如果您想搜索多个单词,可以使用以下内容:
SELECT
*
FROM
table
WHERE
(Column LIKE '%word1%') OR
(Column LIKE '%word2%') OR
(Column LIKE '%word3%')
如果要获取包含所有单词而不是ANY
的列,可以为AND更改OR但仍然不是很有用,因为你必须事先知道你将使用多少单词作为参数。
也许您应该使用SQL Server link
中的全文搜索功能答案 2 :(得分:0)
您可以使用以下方法在“bar”栏中搜索“foo”一词:
WHERE Bar LIKE '%foo%'
这就是你要找的东西吗?如果没有,你能举个例子吗?
希望有所帮助,
约翰
答案 3 :(得分:0)
SELECT some_field
FROM some_table
WHERE some_field
LIKE '%first_value%'
OR some_field
LIKE '%second_value%'
...
答案 4 :(得分:0)
在C#中,将搜索句子拆分为单词(使用空格字符作为分隔符)。然后创建一个将成为WHERE子句的字符串,如下所示:
"WHERE searchColumn LIKE '% " + splitString[0] + " %' AND searchColumn LIKE '% " + splitString[1] + " %'"
等等。使用for循环。用其余的SQL查询Concat WHERE子句并执行。