我有一個(gè)很大的查詢,但我會簡化它很多,只有相關(guān)的東西。查詢。 $sql = "SELECT *
FROM articles a
WHERE a.published=1
OR a.published=0
AND a.title LIKE '%$keyword%'
OR a.summary LIKE '%$keyword%';我做錯(cuò)的是 AND 和 OR,在上面的例子中我想顯示所有發(fā)布的文章是 0 或 1 并且 a.title 必須包含 'Lorum' ora.summary 必須包含 'Lorum'。目前,當(dāng)我運(yùn)行查詢時(shí),它會返回所有文章,甚至是那些與關(guān)鍵字不匹配的文章,這是因?yàn)?OR 運(yùn)算符與 a.published,我知道這一點(diǎn),因?yàn)楫?dāng)我刪除該部分時(shí),查詢工作正常。
2 回答

米脂
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
您只需要在 SQL 語句中包含括號即可對運(yùn)算符進(jìn)行分組,例如
$sql = "SELECT * FROM articles a WHERE (a.published=1 OR a.published=0) AND (a.title LIKE '%$keyword%' OR a.summary LIKE '%$keyword%');

忽然笑
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
使用 IN 命令將您的發(fā)布分組為 1 個(gè)邏輯。
$sql = "SELECT * FROM articles a WHERE a.published IN (1,0) AND a.title LIKE '%$keyword%' OR a.summary LIKE '%$keyword%';
- 2 回答
- 0 關(guān)注
- 182 瀏覽
添加回答
舉報(bào)
0/150
提交
取消