利用MySQL find_in_set() 函式進行多字串搜尋
MySQL 的 find_in_set() 函數一次只能搜尋單一字串。然而,實際應用中常常需要同時搜尋多個字串。
例如:
<code class="language-sql">find_in_set('a', 'a,b,c,d')</code>
這裡,'a' 是唯一的搜尋字串。如果要搜尋多個字串,例如 'a,b,c',可以使用以下方法:
<code class="language-sql">find_in_set('a', 'a,b,c,d') OR find_in_set('b', 'a,b,c,d') OR find_in_set('c', 'a,b,c,d')</code>
這種方法使用 OR 運算子組合多個 find_in_set() 呼叫。但是,有更有效率的解決方案:
<code class="language-sql">WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"</code>
這種方法在 'setcolumn' 欄位的開頭和結尾加上逗號,以便進行正規表示式模式比對。其中:
此技巧有效地搜尋 'setcolumn' 包含所有指定字串的行,為多個 find_in_set() 呼叫的替代方案提供了更靈活和高效的途徑。
以上是如何在MySQL中有效率地執行多個字串搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!