假设我使用2个AND
和一个OR
来检索结果,首先使用name
上的输入文本值进行测试,我可以得到正确的结果,但是当我更改{{1}时除了空字符串之外的任何值,结果不会改变,它只查询$getc
值。有什么问题?
name
答案 0 :(得分:8)
尝试将()
放在name LIKE '%$asd%' OR descriptions LIKE '%$asd%'
周围:
$query1 = "SELECT * FROM $tableName WHERE (name LIKE '%$asd%' OR descriptions LIKE '%$asd%') AND category='$getc' AND company_type='$dsp' LIMIT $start, $limit";
其中category
和company_type
必须 匹配且 至少一个 name
和descriptions
必须匹配。
原因:
a OR b AND c AND d
被视为以下内容,AND
的{{3}}高于OR
a OR (b AND c AND d)
但你想要的是:
(a OR b) AND c AND d