ホームページ > データベース > mysql チュートリアル > 検索エンジン統合のために MySQL のカンマ区切りリストを効率的に非正規化するにはどうすればよいですか?

検索エンジン統合のために MySQL のカンマ区切りリストを効率的に非正規化するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-06 11:52:40
オリジナル
822 人が閲覧しました

How Can I Efficiently Denormalize Comma-Separated Lists in MySQL for Search Engine Integration?

シームレスな統合のための MySQL のカンマ区切りリストの解明

問題:

正規化されていないテーブルでは、列に次のような問題が発生します。別のテーブルへの外部キーとして機能するカンマ区切りのリスト。これにより、手続き型言語サポートが不足している検索エンジンにデータを統合するときに問題が発生します。目標は、このリストを複数の行に分割し、最終的に非正規化テーブルを生成することです。

解決策:

MySQL は本質的にテーブルを返す関数を提供していませんが、賢いソリューションは実装可能です:

  1. データの準備:まず、正規化されていないテーブルの主キー (part_id) とカンマ区切りの列 (material) を特定します。
  2. カンマ区切り値の抽出: クエリを使用して、テーブルから個々の値を抽出します。カンマ区切りのリスト。例:
SELECT part_id, REGEXP_SUBSTR(`material`, '[^,]+', 1) AS `material_id`
FROM unnormalized_table
ログイン後にコピー

このクエリは、コンマ区切りリストの最初の値をmaterial_id 列に割り当て、part_id ごとに新しい行を作成します。

  1. プロセスを繰り返します: 上記のクエリを繰り返して、カンマ区切りリストから後続の値を抽出します。パターンを使用して、正規表現内の 2 (2 番目の値) や 3 (3 番目の値) など、リスト内の値の位置を定義します。
  2. Unite Results: UNION ALL を使用して、個々のクエリすべての結果を 1 つのテーブルに結合します。これにより、複数の行が目的の非正規化形式にマージされます。

例:

この解決策を問題ステートメントで提供されている例に適用すると、次のようになります。結果:

part_id material_id
339 1
339 2
970 2

結論:

文字列操作とサブクエリを組み合わせて利用することで、MySQL のカンマ区切りリストを非正規化することができます。この技術により、高度な手続き型言語機能をサポートしていないさまざまなアプリケーションに、そのようなデータをシームレスに統合できます。

以上が検索エンジン統合のために MySQL のカンマ区切りリストを効率的に非正規化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート