0

我很确定以前已经回答过这个问题,但我似乎找不到。

我有一个 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%'jeffchair

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

4

4 回答 4

4

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

您需要 OR 整个条件。

于 2012-06-20T23:37:48.930 回答
1

你应该在 '%jeff%' 之前加上 'keywords LIKE'

因此,“关键字 LIKE '%chair%' 或关键字 LIKE '%jeff%'”

于 2012-06-20T23:37:57.467 回答
1

您需要为要查找的每个项目输入列名。因此,在您的示例中,这应该有效:

$sql= "SELECT filename, name, keywords 
       FROM `pics` 
       WHERE (`keywords` LIKE '%chair%' OR `keyword`s LIKE '%jeff%') 
       ORDER BY date ASC";
于 2012-06-20T23:39:07.187 回答
1

利用:

WHERE (keywords LIKE '%chair%' OR keywords LIKE '%jeff%')
于 2012-06-20T23:39:59.663 回答