首頁 > 資料庫 > mysql教程 > 為什麼我的 SQL WHERE 子句似乎忽略了某個參數?

為什麼我的 SQL WHERE 子句似乎忽略了某個參數?

Barbara Streisand
發布: 2025-01-19 10:11:09
原創
490 人瀏覽過

Why Does My SQL WHERE Clause Seem to Ignore a Parameter?

SQL WHERE 子句故障排除:解決參數忽略問題

本文解決了一個常見的 SQL 查詢問題,其中 WHERE 子句似乎忽略了指定的參數。 考慮這個例子:

SELECT * FROM people 
WHERE
university='2' 
AND MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) 
OR (fname LIKE '%box%' OR lname LIKE '%box%') 
登入後複製

此查詢意外地傳回 university 不為「2」的行。問題在於運算子優先順序和運算順序。

解涉及使用括號重組 WHERE 子句以正確分組條件:

SELECT * FROM people 
WHERE
    university='2' 
    AND (MATCH (lname,fname) AGAINST ('+massive' IN BOOLEAN MODE) 
         OR fname LIKE '%box%' 
         OR lname LIKE '%box%')
登入後複製

透過將 MATCHLIKE 條件括在括號內,我們確保全文搜尋和 LIKE 條件都應用於包含 university = '2' 的行。 然後,AND 運算子正確地將結果限制為滿足所有指定條件的結果。 這種修改後的結構保證了基於預期參數過濾的準確結果。

以上是為什麼我的 SQL WHERE 子句似乎忽略了某個參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板