我很确定之前已经回答过,但我似乎无法找到它。
我有一个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
所需要的东西,但我无法弄清楚
答案 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%')