序文 場合によっては、第 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配列の重複排除のいくつかの方法の詳細な説明
目次序文REDOログの生成REDOログ送信REDOログの保存と通知ユーザースレッドに通知要約する序文...
序文今日は、聖杯レイアウトとダブルウィングレイアウト、そしてそれらの違いについてお話しします。この2...
3G の普及により、携帯電話を使ってインターネットにアクセスする人が増えています。モバイル デバイス...
リレーショナル データベースでは、悲観的ロックと楽観的ロックがリソース同時実行シナリオのソリューショ...
1. コモンズCommonjsはNode.jsのカスタムモジュールですCommonjs 仕様は、Ja...
目次1. redux とは何ですか? 2. 還元の原則3. redux の使い方は? (1)redu...
目次レスト演算子とは何ですか? JavaScript 関数では REST 演算子はどのように機能しま...
ハイパーリンク a タグはリンク ポイントを表し、英語の単語「anchor」の略語です。その機能は、...
img 画像タグに alt 属性を追加しますか?画像 img タグの alt 属性を見落とすことはよ...
2つの目的のためのリソースの結合と圧縮httpリクエストの数を減らす要求されたリソースのサイズを縮小...
Vue のフロントエンドとバックエンドのポートが一致していませんconfig index.jsファイ...
この記事では、MySQLのダウンロードとインストールの詳細なチュートリアルを記載しています。具体的な...
10 日間のチュートリアルでは、最も理解しやすい言語を使用し、最も基本的なことから始めて、誰もが W...
clip-path CSS プロパティはクリッピングを使用して要素の表示可能領域を作成します。領域内...
一般的なフォーム プロンプトは常にフォームのスペースを占有し、フォームが長くなったり広くなったりして...