MySQL の結合フィールドの Concat()

MySQL の結合フィールドの Concat()

1. はじめに

MySQLはリレーショナル データベースです。使用する際、オブジェクトの属性を列にマッピングしてテーブルに格納することがよくあります。そのため、クエリ結果も処理されていない個別の属性です。MySQL で返された結果セットをMySQLし、複数のフィールド (列) の値をまとめて返したり、特定の計算を行った後に返したりする場合は、 MySQLが提供するフィールド計算機能を使用できます。

フィールド計算では、次の 2 つのタイプがよく使用されます。

  • フィールドの連結
  • 算術計算を実行するフィールド

2. 本文

MySQLで実装されているすべてのフィールドの組み合わせはクライアントで完了できますが、 MySQLサーバーで直接フィールドの組み合わせを実装すると、クライアントよりも高速になります。

2.1 フィールドの連結

ユーザー テーブルを準備し、次のようにいくつかのレコードを挿入します。

名前を設定します utf8mb4;

FOREIGN_KEY_CHECKS = 0 を設定します。

-- ----------------------------

-- ユーザー用テーブル構造

-- ----------------------------

`user` が存在する場合はテーブルを削除します。

テーブル `user` を作成します (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主キー',

  `name` varchar(255) 文字セット utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'ユーザー名',

  `nation` varchar(255) 文字セット utf8 照合 utf8_general_ci NULL デフォルト NULL コメント 'Ethnicity',

  BTREE を使用した主キー (`id`)

) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------

-- ユーザーの記録

-- ----------------------------

INSERT INTO `user` VALUES (1, '李子八', '汉族');

INSERT INTO `user` VALUES (2, '张三', '慧族');

INSERT INTO `user` VALUES (3, '李四', 'Uyghur');

INSERT INTO `user` VALUES (4, '王五', '蒙古');

FOREIGN_KEY_CHECKS = 1 を設定します。

必要:

ユーザーの名前と民族の組み合わせ情報を取得します

声明:

mysql> user から、name, '(',nation, ')') を選択します。

+---------------------------------+

| concat(名前、'('、国、')') |

+---------------------------------+

| 李子巴(漢民族)|

| 張三(ホイ) |

| 李斯(ウイグル語) |

| 王武(モンゴル語)|

+---------------------------------+

分析:

ここではconcat()関数が使用されています。関数では任意の数の要素を組み合わせることができます。これらの要素は、テーブル フィールド、固定文字などです。要素は で区切られ、組み合わせの順序はconcat()関数内の文字の順序と同じです。

結合後のフィールド名はどうなりますか?

注意深い友人は、結合後のフィールド名がconcat()関数の関数本体全体を使用していることを発見しました。明らかに、この表示は私たちが望んでいるものではありません。必要なフィールド名を指定したい場合は、エイリアスを使用してください。

mysql> user から user_message として concat(name, '(',nation, ')') を選択します。

+------------------+

| ユーザーメッセージ |

+------------------+

| 李子巴(漢民族)|

| 張三(ホイ) |

| 李斯(ウイグル語) |

| 王武(モンゴル語)|

+------------------+

エイリアスの使用方法は、 as後に指定するフィールド名を続けることです。

2.2 フィールドでの算術計算の実行

フィールドを結合する場合、単に文字列を連結する以上の処理を実行することがよくあります。フィールド間の算術計算が必要になる場合があります。この場合、 MySQLの算術演算子を使用する必要があります。

MySQL は、次のように加算、減算、乗算、除算の演算子を提供します。

オペレーター例示する
+追加
-減らす
*取る
/

製品テーブルを準備し、次のようにいくつかのレコードを挿入します。

名前を設定します utf8mb4;

FOREIGN_KEY_CHECKS = 0 を設定します。



-- ----------------------------

-- 製品のテーブル構造

-- ----------------------------

`product` が存在する場合はテーブルを削除します。

テーブル「product」を作成します(

  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主キー',

  `product_name` varchar(255) 文字セット utf8 COLLATE utf8_general_ci NOT NULL COMMENT '製品名',

  `price` 10進数(10, 2) UNSIGNED NOT NULL COMMENT '製品価格',

  `number` int(11) NOT NULL COMMENT '製品数量',

  BTREE を使用した主キー (`id`)

) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------

-- 製品の記録

-- ----------------------------

`product` に VALUES (1, 'Apple iPhone 13 (A2634)', 6799.00, 22) を挿入します。

`product` VALUES (2, 'HUAWEI P50 Pro', 6488.00, 88) に INSERT INTO します。

`product` VALUES (3, 'MIX4', 4999.00, 30) に INSERT します。

`product` VALUES (4, 'OPPO Find X3', 3999.00, 15) に INSERT INTO します。

`product` VALUES (5, 'vivo X70 Pro+', 5999.00, 27) に INSERT INTO します。

FOREIGN_KEY_CHECKS = 1 を設定します。

必要:

現在の在庫商品の合計金額を照会する

声明:

mysql> product_name を選択し、(price * number) を gross_value として product から連結します。

+-------------------------+--------------+

| 商品名 | 総額 |

+-------------------------+--------------+

| Apple iPhone 13 (A2634) | 149578.00 |

| HUAWEI P50 Pro | 570944.00 |

| ミックス4 | 149970.00 |

| OPPO Find X3 | 59985.00 |

| ヴィヴォ X70 Pro+ | 161973.00 |

+-------------------------+--------------+

演算子順序の問題:

MySQLの演算子にも順序があり、これは通常の演算子の演算順序と同じです(* / ) > (+ -) 。複合演算子を使用する場合は、演算子の順序に注意する必要があります。() を適切に使用すると、演算子の実行順序を制約できます。

例:

mysql> select concat(12 - 3 * 4);

+--------------------+

| 連結(12 - 3 * 4) |

+--------------------+

| 0 |

+--------------------+

セット内の 1 行 (0.00 秒)

mysql> select concat((12 - 3) * 4);

+----------------------+

| 連結((12 - 3) * 4) |

+----------------------+

| 36 |

+----------------------+

セット内の 1 行 (0.00 秒)

MySQLでは、被除数が 0 の場合、例外はスローされず、 NULLが返されることに注意してください。これは、 MySQL操作を異常に処理するためです。

mysql> select concat(12 / 0);

+----------------+

| 連結(12 / 0) |

+----------------+

| NULL |

+----------------+

セットに 1 行、警告 1 件 (0.00 秒)

これで、MySQL のconcat()に関するこの記事は終了です。MySQL のconcat()の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLで挿入と選択をネストして使用すると、結合されたフィールドを挿入する問題が解決されます。
  • MySQLはgroup_concat()関数に基づいて複数のデータ行を結合します
  • MySQLのgroup_concat()関数のソート方法についての簡単な説明
  • mysql group_concat() 関数の使用法の概要
  • mysqlはgroup_concat()を使用して複数行のデータを1行に結合します。
  • Mysql GROUP_CONCAT() 関数の使い方

<<:  Bootstrap 3.0 学習ノートのページレイアウト

>>:  Ubuntuはカーネルモジュールをコンパイルし、その内容はシステムログに反映されます。

推薦する

Vueはボールのスライディングクロス効果を実現します

この記事の例では、ボールのスライドとクロスの効果を実現するためのVueの具体的なコードを共有していま...

Ubuntu 12.04 でカーネルツリーを構築する実装プロセスの詳細な説明

まず使用しているカーネルのバージョンを確認してくださいlin@lin-仮想マシン:~$ uname ...

MySQL の binlog_format モードと設定の詳細な分析

MySQL レプリケーションには、SQL ステートメント ベースのレプリケーション (SBR)、行ベ...

MySQL alter ignore構文の詳細な説明

今日仕事中に、ビジネス側から次のような質問をされました。テーブルがあり、一意のフィールドを追加する必...

Centos8で静的IPを設定する方法の詳細な説明

CentOS 8をインストールした後、ネットワークを再起動すると次のエラーが表示されますエラーメッセ...

CentOS7にsshをインストールして設定する

1. openssh-serverをインストールする yum インストール -y openssl o...

Kubernetes YAMLファイルの使用

目次01 YAMLファイルの概要YAML---キー値型YAML---リスト型02 K8Sにおけるマス...

MySQL構成SSL証明書ログインの実装

目次序文1. MySQLはSSL構成を有効にする1.1 SSLが有効になっているかどうかを確認する1...

Mysql systemctl start mysqld によって報告されるエラーの解決策

エラーメッセージ:制御プロセスがエラー コードで終了したため、mysqld.service のジョブ...

mysql 5.7.20 win64 のインストールと設定方法

mysql-5.7.20-winx64.zipインストール手順のないインストール パッケージ: ht...

jsはショッピングサイトの虫眼鏡機能を実現します

この記事では、ショッピングサイトの虫眼鏡機能を実現するためのjsの具体的なコードを紹介します。具体的...

Vueモバイル端末が指のスライド効果を実現

この記事の例では、Vueモバイル端末で指のスライド効果を実現するための具体的なコードを紹介します。具...

docker compose を使用して FastDfs ファイル サーバーをインストールする詳細な例

ドッカーの作成 バージョン: '2' サービス: fastdfsトラッカー: ホスト...

シェルでパスワードなしでMySQLデータベースに素早くログインする方法

背景Shell の mysql-client を介して MySQL データベースにログインする場合、...

MySQL 文字セットの文字化けとその解決方法

序文文字セットは、一連のシンボルとエンコード規則です。Oracle データベースでも MySQL デ...