首頁 > 資料庫 > mysql教程 > 如何有效率地查詢 MySQL 中逗號分隔值欄位的精確匹配?

如何有效率地查詢 MySQL 中逗號分隔值欄位的精確匹配?

Linda Hamilton
發布: 2025-01-22 21:41:12
原創
341 人瀏覽過

How Can I Efficiently Query MySQL for Exact Matches in Comma-Separated Value Fields?

針對逗號分隔值最佳化 MySQL 查詢

讓我們檢查一個 SHIRTS 表,其中的 COLORS 欄位儲存以逗號分隔的數字顏色代碼。 簡單的 LIKE 查詢可能會產生不準確的結果:

<code class="language-sql">SELECT * FROM shirts WHERE colors LIKE '%1%'</code>
登入後複製

此查詢傳回 colors 欄位中任意位置包含「1」的襯衫,包括顏色代碼為 1、12 或 15 的襯衫。要只查找顏色代碼為 1 的襯衫,我們需要更精確的方法。

一種有效的技術是在比較之前在 colors 字串兩側添加逗號:

<code class="language-sql">SELECT * FROM shirts WHERE CONCAT(',', colors, ',') LIKE '%,1,%'</code>
登入後複製

這可確保僅符合由逗號精確分隔的顏色代碼 1。

另一個有效的方法是使用 FIND_IN_SET() 函數:

<code class="language-sql">SELECT * FROM shirts WHERE FIND_IN_SET('1', colors) > 0</code>
登入後複製

FIND_IN_SET() 直接檢查 colors 欄位中逗號分隔清單中是否存在“1”,提供準確的結果。 這種方法因其清晰和高效而受到普遍青睞。

以上是如何有效率地查詢 MySQL 中逗號分隔值欄位的精確匹配?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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