首頁  >  文章  >  資料庫  >  如何在 MySQL 中搜尋逗號分隔欄位中的特定值?

如何在 MySQL 中搜尋逗號分隔欄位中的特定值?

Barbara Streisand
Barbara Streisand原創
2024-11-08 00:01:03341瀏覽

How to Search for Specific Values in a Comma-Separated Field in MySQL?

在MySQL 中的逗號分隔欄位中搜尋

在MySQL 中,可能會出現資料以某些逗號分隔格式儲存的情況,儘管建議的做法不建議這樣做。當嘗試在此類字段中執行精確搜尋時,這帶來了挑戰。考慮以下範例:

一個表包含一個字段,其中來自另一個表的值存儲為逗號分隔的列表:

12,13,14,16

當前的任務是在該字段中搜尋特定值使用以下查詢的欄位:

SELECT ... WHERE field LIKE '%1%'

但是,由於資料的性質,此類查詢將符合幾乎所有條目,因為大多數常見ID 都在一個狹窄的範圍內。

為了解決這個問題,需要進行更具體的搜尋。考慮在 LIKE 條件中使用 %,1,%,而不是使用 %1%。這將匹配前面和後面都有逗號的值。

不幸的是,這種方法對逗號分隔清單中的第一個和最後一個值有限制,因為它們不會與模式相符。

因此,需要採取不同的方法。 MySQL 提供了一個強大的函數 FIND_IN_SET,它允許在逗號分隔清單中進行搜尋:

SELECT ... WHERE FIND_IN_SET('1', field)

使用 FIND_IN_SET 將傳回指定值在逗號分隔清單中的位置,如果值不存在。即使在非理想的資料結構中,這也能實現精確且有效率的搜尋。

以上是如何在 MySQL 中搜尋逗號分隔欄位中的特定值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn