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

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

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