我有以下查询应该使用LIKE在两个字段中搜索某些内容:
string LikeQuery = string.Format(
"SELECT * FROM tblArticles WHERE ArticleTitle OR ArticleContent LIKE '%{0}%'",
search);
...但它不起作用:即使search
中的字符串没有出现在任何行的ArticleTitle
和ArticleContent
中,仍然是所有行表被检索。我想知道如何解决它?
谢谢!
答案 0 :(得分:4)
应该是......
SELECT *
FROM tblArticles
WHERE ArticleTitle LIKE '%{0}%'
OR ArticleContent LIKE '%{0}%'
...即,有两个独立的逻辑表达式。你现在正在做的是单独检查ArticleTitle
字段中值的真实性(并且只有当它不是真实时,才会评估第二个表达式 - 使用LIKE)。显然,ArticleTitle
在该表的所有行中都不为空。
作为旁注,我想知道如何在这里创建search
值,并且不会产生查询。
答案 1 :(得分:2)
尝试:
ArticleTitle LIKE '%{0}%' OR ArticleContent LIKE '%{0}%'
而不是
ArticleTitle OR ArticleContent LIKE '%{0}%'
但我想它可能因db引擎而异。