首頁 > 資料庫 > mysql教程 > 如何在以逗號分隔的 MySQL 字串中查詢精確匹配?

如何在以逗號分隔的 MySQL 字串中查詢精確匹配?

Linda Hamilton
發布: 2025-01-22 21:37:14
原創
626 人瀏覽過

How to Query for Exact Matches in Comma-Separated MySQL Strings?

在 MySQL 中查詢逗號分隔字串的精確匹配

在處理包含逗號分隔字串的 MySQL 欄位時,查詢特定值通常會遇到挑戰。例如,當查詢字串中存在特定值的所有記錄時,您可能會無意中檢索到包含目標數字的其他值的記錄。

考慮以下查詢:

<code class="language-sql">select * from shirts where colors like '%1%'</code>
登入後複製

此查詢旨在檢索顏色為紅色的所有襯衫(color=1)。但是,它也會檢索顏色為灰色(=12)和橙色(=15)的襯衫,因為這些顏色包含數字 1。

為了解決這個問題,您可以改進查詢以確保它只選擇您要搜尋的精確顏色值。以下是兩種常用的方法:

1. 連接逗號

此方法包括在目標值的左側和右側新增逗號。這樣做可以確保搜尋字串只符合與所需值完全相等的那些值。

<code class="language-sql">select * from shirts where CONCAT(',', colors, ',') like '%,1,%'</code>
登入後複製

2. 使用 find_in_set

find_in_set 函數也可用來實現預期結果。此函數採用兩個參數:

  • 您要搜尋的目標值
  • 您要在其中搜尋的逗號分隔字串

find_in_set 傳回的值大於 0 時,表示目標值存在於字串中。這是一個範例查詢:

<code class="language-sql">select * from shirts where find_in_set('1', colors) > 0</code>
登入後複製

透過使用這兩種方法中的任何一種,您可以確保您的 MySQL 查詢準確地檢索您感興趣的精確顏色值的記錄,而不會拾取不需要的匹配項。

以上是如何在以逗號分隔的 MySQL 字串中查詢精確匹配?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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