序文 場合によっては、第 1 正規形設計パターンに従わないビジネス テーブルに遭遇することがあります。つまり、複数の属性値が 1 つの列に格納されます。次の表に示すように
一般的には2つの共通の要件があります(テストデータについては記事の最後を参照してください) 1. 繰り返しのない値をすべて取得する。
SQL は次のとおりです。 選択distinct(substring_index(substring_index(a.col,',',b.help_topic_id+1),',',-1)) から (select group_concat(distinct `value`) as col from `row_to_col`) として 参加する mysql.help_topicをbとして b.help_topic_id で < (char_length(a.col) - char_length(replace(a.col,',',''))+1) 2. 各値とそれに対応する主キーを表示します。
SQL は次のとおりです。 a.pk、substring_index(substring_index(a.col、'、'、b.help_topic_id+1)、'、'、-1) を選択します。 から (`row_to_col` から `value` を col,pk として選択) 参加する mysql.help_topicをbとして b.help_topic_id で < (char_length(a.col) - char_length(replace(a.col,',',''))+1) 実装のアイデア: 要件 1: 1. group_concat関数を使用して値列の値をコンマ区切りの文字列に連結し、substring_index関数を使用して文字列をインターセプトします。 知らせ: 要件2: 最終的なクエリが異なる点を除けば、考え方は基本的に要件1と同じです。 関連する機能: length: 文字列が占めるバイト数を返します。これは計算フィールドの長さです。漢字または漢字記号は 3 文字としてカウントされ、数字、文字、英語記号は 1 文字としてカウントされます。 テストデータ: `row_to_col` が存在する場合はテーブルを削除します。 テーブル `row_to_col` を作成します ( `pk` int(11) NOT NULL AUTO_INCREMENT、 `value` varchar(255) デフォルト NULL, 主キー (`pk`) ) ENGINE=InnoDB AUTO_INCREMENT=8 デフォルト CHARSET=utf8; `row_to_col` に VALUES ('1', 'ET,AT') を挿入します。 `row_to_col` に VALUES ('2', 'AT,BT') を挿入します。 `row_to_col` VALUES ('3', 'AT,DT') に INSERT します。 `row_to_col` に VALUES ('4', 'DT,CT,AT') を挿入します。 参照: これで、MySQL でカンマ区切りの列を行と列に変換する方法についての記事は終了です。MYSQL のカンマ区切りの列を行と列に変換する方法についての詳細は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Element における複数データ読み込み最適化の実装
>>: Javascript配列の重複排除のいくつかの方法の詳細な説明
コンテナをソートするためにdepends_onを使用しても、コンテナ間の依存関係の問題は完全には解決...
IE6 で CSS スタイルの div または li の背景のタイリングや境界の破壊を解決するには、...
目次1. サーバー2. クライアント3. テストサービス1. サーバー1. YUMソースを使用してN...
この記事では、ネイティブ JS で実装されたドラッグ可能な写真ウォールを紹介します。効果は次のとおり...
コードをコピーコードは次のとおりです。 <html> <ヘッド> <t...
序文実際、クエリ中に結果に番号が付けられるこのような状況に遭遇したことは一度もありません。同僚が転職...
VirtualBox をインストールした後、CentOS 7 をインストールします。ここでは詳細には...
v-model を使用してページング情報オブジェクトをバインドします。ページング情報オブジェクトに...
現象プロジェクトにはネストされたフレックス構造がいくつかあります。 <スタイル> /* ...
1. 一般的な使用法: (1)%で使用する% は 1 つ以上の文字のワイルドカードを表します。たとえ...
1. プロジェクト構造 2.Tomcat.javaを呼び出す パッケージ com.calltomca...
序文: Integer は MySQL で最もよく使用されるフィールド型の 1 つで、通常は整数を格...
私はフロントエンド プロジェクトの開発に常に vscode を使用してきたため、現在ではいくつかの小...
rpm インストール方法を使用して MySQL データベースをインストールした後、データ ファイルの...
コードをコピーコードは次のとおりです。 <div class="content&qu...