MySQL LIKE 查詢中的多個值
在資料庫中,LIKE 運算子通常用於匹配字串中的模式。但是,當您需要在單一欄位中查找多個值的匹配項時,這可能會變得很棘手。本文探討了在 MySQL 中使用 LIKE 運算子查詢多個值的問題。
為什麼LIKE 查詢不起作用
根據您提供的查詢:
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
此查詢旨在檢索「interests」欄位包含「 sports”或“pub”或兩個都。但是,它可能不會產生所需的結果,因為 LIKE 會按順序檢查指定模式是否存在。在本例中,它首先會尋找存在於所有行中的“%sports%”,然後尋找僅存在於一行中的“%pub%”。因此,您只會得到包含“sports”和“pub”的行。
更快、更有效率的解決方案
而不是使用具有多個模式的LIKE,考慮以下替代方案:
或邏輯運算子:
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
此查詢使用OR邏輯運算子來組合兩個 LIKE 語句。它將傳回與任一模式匹配的任何行。此方法通常比具有多種模式的 LIKE 更快。
REGEXP 正規表示式:
WHERE interests REGEXP 'sports|pub'
REGEXP 運算子可讓您搜尋正規表示式。在本例中,表達式“sports|pub”意味著它將找到“sports”或“pub”的匹配項。 REGEXP 可以成為更複雜模式匹配的強大工具。
參考連結:
以上是如何使用MySQL的LIKE運算子高效查詢多個值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!