首頁 >後端開發 >php教程 >如何有效率地查詢包含逗號分隔值的資料庫列?

如何有效率地查詢包含逗號分隔值的資料庫列?

Barbara Streisand
Barbara Streisand原創
2024-12-30 21:44:10778瀏覽

How Can I Efficiently Query a Database Column Containing Comma-Separated Values?

處理單列中包含多個值的查詢

在這種情況下,我們遇到一個表,其中包含名為“ children」的列,該列儲存以逗號分隔的名稱。目標是檢索此列中存在指定子項(例如「Alex」)的記錄。

但是,使用簡單的相等性檢查(例如“WHERE Children = 'Alex'”)會失敗,因為有多個名稱存在於每個細胞中。基本的 LIKE 搜尋(“WHERE kids LIKE '%Alex%'”)會因部分匹配(例如“Alexandre”或“Diana”)而導致誤報。

為了解決這個挑戰,最佳方法是透過引入單獨的表來儲存子父關係來標準化資料結構。這將使我們能夠有效地執行連接並檢索所需的資訊。

儘管如此,如果規範化不可行,則會提出使用FIND_IN_SET 函數的解決方案:

WHERE FIND_IN_SET('Alex', children) > 0

此函數搜尋列值中的指定字串,如果該字串存在,則傳回正數。透過將此條件合併到 WHERE 子句中,我們可以識別列出「Alex」子項目的行。

以上是如何有效率地查詢包含逗號分隔值的資料庫列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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