序文 場合によっては、第 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配列の重複排除のいくつかの方法の詳細な説明
注: データベースのバージョンの問題により、プロジェクトの起動時にエラーは発生しませんでしたが、デー...
この記事では、参考までにMySQLの無料インストール構成チュートリアルを紹介します。具体的な内容は次...
名前キャラクター名前キャラクター情報ニューステクノロジー技術スキンケアスキンケア補う補う香水香水化粧...
Linux 仮想マシン: VMware + Ubuntu 16.04.4 Windows ネイティブ...
目次ドヴァdvaの使用DVAの実装非同期をサポートルーターの実装成し遂げる:ドヴァdva は、red...
目次1. トリガーの紹介1. トリガーとは何ですか? 2. トリガーの特徴2. トリガーを作成する1...
目次1. v-bindの主要ソースコードの分析1. v-bind属性はどこに均一に保存されるか: a...
序文プロジェクトのニーズに応じて、Vue-touch を使用して、vue モバイル端末の左スワイプ編...
Grafana をインストールします。公式 Web サイトでは、直接インストールできる Ubuntu...
以前、MySQL クエリ文の実行プロセスについての記事がありました。ここでは、更新文の実行プロセスを...
画像をダウンロード docker プル mysql:5.7 docker pull php:7.2-...
<br />ホームページの右側にあるスクロールバーを削除するにはどうすればよいですか? ...
テーブルを美しくするために、セルごとに異なる境界線の色を設定できます。基本的な構文<TD 境界...
PHPの仕組みまず、よく耳にするcgi、php-cgi、fastcgi、php-fpmの関係を理解し...
mapGettersヘルパー関数mapGettersヘルパー関数は、ストア内のゲッターをローカルの計...