根據多個列值檢索記錄
在單一資料庫列包含多個值的情況下,執行查詢以根據這些值檢索記錄價值觀可能具有挑戰性。例如,需要尋找有一個名為 Alex 的孩子的父母。
使用「WHERE Children = 'Alex'」的傳統方法是不可行的,因為 Children 欄位中存在多個名稱。諸如“WHERE kids LIKE '%Alex%'”之類的替代方案會返回更廣泛的結果,包括以 Alex 開頭的名稱(例如 Alexandre)。為了精確匹配單一值,建議對架構進行標準化。
標準化涉及為每個子項目建立一個單獨的表,其中包含單獨的行。透過將此表與父表連接,可以識別具有特定子項的父項。
對於無法進行標準化的情況,另一種技術是利用FIND_IN_SET 函數:
WHERE FIND_IN_SET('Alex', children)
此函數在子列中搜尋特定的子字串(在本例中為“ Alex”),如果找到則回傳數字索引。匹配記錄的索引會大於0,便於有效過濾。
以上是如何根據單一資料庫列中的多個值高效檢索記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!