序文 場合によっては、第 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配列の重複排除のいくつかの方法の詳細な説明
この記事では、WeChatアプレットのウォーターフォールフローページングスクロールロードを実装するた...
nginx.conf で複数のサーバーを設定します。 http リクエストを処理する際、nginx ...
目次まとめ問題の説明問題を分析する問題を解決するまとめ複雑な知識をシンプルに説明できることは重要です...
しばらくReactを勉強した後、実践してみたいと思います。そこで、個人のブログのウェブサイトを再構築...
docker-compose.yml を編集し、次のコンテンツを追加します。 バージョン: '...
ネットワーク セキュリティは非常に重要なトピックであり、サーバーはネットワーク セキュリティにおける...
Docker と Docker Machine の違いDocker はクライアント サーバー アーキ...
以下のように表示されます。 bb_sbからa1、a2、a1+a2 a、a1*a2 b、a1*1.0/...
Apache Tika は、さまざまな形式のファイルからファイル タイプを検出し、コンテンツを抽出す...
目次1. データベース設計2. フロントエンドページ3. 完全なデモフロントエンド開発では、カスケー...
目次Vue ファースト スクリーン パフォーマンス最適化コンポーネント説明するインターセクションオブ...
目次1. シーンレイアウト2. ハンドルリスナーを追加する1. イベントの変更を監視する2. 座標設...
目次マスターの後ろの秒数オリジナルの実装最終マスタータイムスタンプマスターとのクロック差他の実行時間...
序文nginx はマルチプロセス モデルを使用します。リクエストが届くと、システムはプロセスをロック...
目次1. データ操作言語 (DML) 2. データを追加する(挿入) 3. 既存のテーブルをコピーし...