首頁 > 後端開發 > php教程 > 如何有效率地尋找單一資料庫列中具有多個值的記錄?

如何有效率地尋找單一資料庫列中具有多個值的記錄?

Susan Sarandon
發布: 2024-12-28 02:51:10
原創
551 人瀏覽過

How Can I Efficiently Find Records with Multiple Values in a Single Database Column?

查找列中具有多個值的記錄

在關聯式資料庫中,通常會在單一欄位中儲存多個值。但是,當使用此類列查詢資料時,隔離特定值可能具有挑戰性。讓我們探討一個場景,其中我們有一個包含「子層級」列的表,其中包含以逗號分隔的多個名稱。

問題:

考慮下表:

id name children
1 Roberto Michael,Dia
2 Maria John,Alex
3 Mary Alexandre,Diana

目標是找到有一個名叫亞歷克斯的孩子的父母。雖然使用“WHERE Children = 'Alex'”是理想的選擇,但由於每個單元格中有多個名稱,它會失敗。使用“WHERE Children LIKE '%Alex%'”會傳回額外的不相關符合。

標準化架構:

要解決此問題,可以透過建立表架構來標準化一個單獨的兒童表,每個孩子佔一行。然後可以將原始表與子表連接起來,以找到具有特定子表的父表。然而,如果這個解決方案不可行,還有一個替代方案:

FIND_IN_SET 函數:

MySQL FIND_IN_SET() 函數可用來檢查特定值是否存在於逗號分隔的清單中。對於這種情況,查詢將為:

WHERE FIND_IN_SET('Alex', children)
登入後複製

此查詢將傳回在「children」列中找到「Alex」的行。

以上是如何有效率地尋找單一資料庫列中具有多個值的記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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