mysql OR请求只返回上半部分但不返回第二部分

时间:2012-06-20 23:32:09

标签: php mysql

我很确定之前已经回答过,但我似乎无法找到它。

我有一个mysql请求,它只返回前半部分的结果,而不是作为一个数组返回所有结果。

sql= "SELECT filename, name, keywords FROM `pics` WHERE (keywords LIKE '%chair%' OR '%jeff%') ORDER BY date ASC";

$rows = $db->fetch_all_array($sql);
foreach($rows as $i => $record){

因此,如果我要运行上面的代码,我会在其中输入所有条目chair但不包含jeff ...如果我切换它们并执行'%jeff%' OR '%chair%'我得到其中包含jeff但不包含chair

的所有条目

我确信我错过了OR所需要的东西,但我无法弄清楚

4 个答案:

答案 0 :(得分:4)

keywords LIKE '%chair%' OR keywords LIKE '%jeff%'

你需要整个条件。

答案 1 :(得分:1)

你应该在'%jeff%'

之前加上'keywords LIKE'

所以,“关键词LIKE'%chair%'或关键词LIKE'%jeff%'”

答案 2 :(得分:1)

您需要为要查找的每个项目添加列名称。所以在你的例子中,这应该有效:

$sql= "SELECT filename, name, keywords 
       FROM `pics` 
       WHERE (`keywords` LIKE '%chair%' OR `keyword`s LIKE '%jeff%') 
       ORDER BY date ASC";

答案 3 :(得分:1)

使用:

WHERE (keywords LIKE '%chair%' OR keywords LIKE '%jeff%')