使用序列化數組過濾的MySQL 查詢
在MySQL 資料庫中,可能需要根據序列化數組中的特定項檢索記錄數組儲存在字段中。然而,SQL 語言不支援序列化數組中的直接項目比較。
儘管如此,有兩種潛在的方法可以解決此挑戰:
將數組序列化為字串
由於序列化數組本質上是一個字串,因此您可以利用LIKE 子句來匹配和選擇記錄。例如:
SELECT * FROM table WHERE (an item in my array) LIKE '%$n%'
這種方法涉及使用PHP 的unserialize() 函數將序列化數組重建為字串,索引到數組中以檢查所需的項目,然後使用serialize() 重新序列化它.
資料庫標準化
如果頻繁查詢需要存取序列化數組中的單一項目,強烈建議透過將每個項目儲存為單獨的行來標準化數據結構在相關表中。這提供了顯著更好的效能和查詢靈活性,因為它消除了潛在的複雜字串解析和 LIKE 操作的需要。
以上是如何根據序列化數組中的項目過濾 MySQL 記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!