問題:
MySQL 的 find_in_set 函數可以搜尋逗號分隔值 (CSV) 集合中的單一字串。但是,如何利用它的功能同時搜尋多個字串呢?
解答:
雖然 MySQL 沒有原生函數支援多字串搜索,但可以使用以下技巧:
<code class="language-sql">WHERE CONCAT(",", `setcolumn`, ",") REGEXP ",(val1|val2|val3),"</code>
此方法將目標 CSV 集合與逗號連接,包括開頭和結尾的逗號。然後,檢查產生的字串是否與用管道符號 (|) 分隔的任何所需搜尋字串相符的模式。例如:
<code class="language-sql">WHERE CONCAT(",", `tags`, ",") REGEXP ",(red|green|blue),"</code>
此查詢將傳回 tags
欄位包含 "red"、"green" 或 "blue" 中任何一個值的那些行。
以上是如何使用 MySQL 的 find_in_set 執行多個字串搜尋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!