問題:
正規化されていないテーブルでは、列に次のような問題が発生します。別のテーブルへの外部キーとして機能するカンマ区切りのリスト。これにより、手続き型言語サポートが不足している検索エンジンにデータを統合するときに問題が発生します。目標は、このリストを複数の行に分割し、最終的に非正規化テーブルを生成することです。
解決策:
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 中国語 Web サイトの他の関連記事を参照してください。