MySQL WHERE和Like问题

时间:2010-07-20 04:23:26

标签: mysql

有没有办法可以将多个WHERE组合成一个

这是我想要结合的内容。

SELECT * 
FROM question 
WHERE content LIKE '%$search_each%'
WHERE title LIKE '%$search_each%'
WHERE summary LIKE '%$search_each%'

2 个答案:

答案 0 :(得分:2)

SELECT * 
FROM question 
WHERE content LIKE '%$search_each%'
AND title LIKE '%$search_each%'
AND summary LIKE '%$search_each%'

这将仅返回内容,标题和摘要包含搜索文本的条目。

SELECT * 
FROM question 
WHERE content LIKE '%$search_each%'
OR title LIKE '%$search_each%'
OR summary LIKE '%$search_each%'

这将返回任何字段包含搜索词的条目。

例如:假设您按内容,标题,摘要的顺序拥有以下数据 我的头衔,我的总结,我的内容 这是一个标题,这不是标题,也不是 不是粉丝,打字很多,所以我现在停下来

如果search_each设置为“title”并且您使用AND查询,则只会返回第一行。 第二行不会返回,因为摘要[第3项]中没有单词标题。 如果你有相同的search_each并使用OR查询,则1和2都将返回。它们都包含三列中至少一列中的搜索词。 如果将搜索项设置为“a”,则AND查询将仅返回第3行,而OR查询将返回所有3行。

AND和OR之间的区别在于AND要求所有“AND”在一起的项为真,或者只要求其中1个为真。

答案 1 :(得分:1)

您可以使用AND或OR运算符

SELECT * 
FROM question 
WHERE content LIKE '%$search_each%'
AND title LIKE '%$search_each%'
AND summary LIKE '%$search_each%'