問題:
在非標準化表中,列包含充當單獨表的外鍵的逗號分隔清單。當將數據整合到缺乏過程語言支援的搜尋引擎時,這就帶來了挑戰。目標是將這個清單分成多行,最終產生一個非規範化的表。
解決方案:
雖然MySQL 不提供本質上返回表的函數,但是一個聰明的方法解決方案可以實施:
SELECT part_id, REGEXP_SUBSTR(`material`, '[^,]+', 1) AS `material_id` FROM unnormalized_table
此查詢將逗號分隔清單中的第一個值指派給material_id列,為每個part_id建立一個新行。
範例:
將此解決方案應用於問題陳述中提供的範例將產生以下結果:
part_id | material_id |
---|---|
339 | 1 |
339 | 2 |
970 | 2 |
結論:
利用字串運算和子查詢的組合,可以對MySQL 中的逗號分隔清單進行非規範化。該技術可以將此類數據無縫整合到不支援高級製程語言功能的各種應用程式中。
以上是如何有效地將 MySQL 中的逗號分隔清單反規範化以實現搜尋引擎整合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!