仅当结果大于0时才显示Mysql

时间:2018-04-16 20:42:48

标签: php html mysql database mysqli

我正在运行以下查询来搜索MySQL中的产品,它会显示所有内容但我需要它才能显示库存中超过0(至少1)的产品

    $result=mysqli_query($datacenter,"
SELECT * FROM productos 
WHERE codigo like '%$terminos%' 
or sku like '%$terminos%' 
or producto like '%$terminos%' 
or marca like '%$terminos%' 
or modelo like '%$terminos%' 
AND cantidad > 0 
ORDER BY `$orden` 
$emplazamiento 
limit $visualizar");

问题在于它甚至显示库存为0的那些......有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你应该将OR语句包装在这样的括号中:

    $result=mysqli_query($datacenter,"
SELECT * FROM productos 
WHERE (codigo like '%$terminos%' 
or sku like '%$terminos%' 
or producto like '%$terminos%' 
or marca like '%$terminos%' 
or modelo like '%$terminos%')
AND cantidad > 0 
ORDER BY `$orden` 
$emplazamiento 
limit $visualizar");

如果不这样做,最后一个OR语句将被解释为单个表达式:

or modelo like '%$terminos%' AND cantidad > 0

答案 1 :(得分:0)

可能是因为您的查询中的AND和OR未正确排序。我总是对计算机读取AND和OR的顺序感到困惑,所以我总是使用()让计算机知道我真正想要做什么。

尝试将此作为查询:

SELECT * FROM productos 
WHERE (codigo like '%$terminos%' 
or sku like '%$terminos%' 
or producto like '%$terminos%' 
or marca like '%$terminos%' 
or modelo like '%$terminos%')
AND cantidad > 0 
ORDER BY `$orden` 
$emplazamiento 
limit $visualizar