1. ホーム
  2. mysql

[解決済み] mysqlで2つの列を既存の列名で1つに結合する方法は?

2022-03-05 12:48:52

質問

mysqlを使用して、既存のカラム名を持つテーブル内の2つのカラムを連結したいのですが、可能ですか?

例を挙げます。あるカラム FIRSTNAMELASTNAME というように、多くのカラムもあります。この2つのカラムを連結して、名前を FIRSTNAME のみです。

そこで、こんな風にやってみました。

 SELECT *, CONCAT(FIRSTNAME, ',', LASTNAME) AS FIRSTNAME FROM `customer`;

という名前の2つのフィールドが表示されます。 FIRSTNAME 1つのフィールドは通常の値を持ち、もう1つは連結された値を持っています。私はそれらの連結値を持つ唯一の列が必要です。私は単一の列を選択することができますが、私のテーブルには40以上の列があります。

mysql自体で元のカラムを削除する方法はありますか?

どのように解決するのですか?

aziz-shaikh さんのご指摘の通り、個々のカラムを * ディレクティブを使用することができるかもしれません。

SELECT CONCAT(c.FIRSTNAME, ',', c.LASTNAME) AS FIRSTNAME,
       c.*
FROM   `customer` c;

これを行うことで、2番目に出現する FIRSTNAME カラムは FIRSTNAME_1 ということで、カスタマイズした FIRSTNAME カラムを使用します。テーブルのエイリアスを作成する必要があるのは * を開始位置以外で使用すると、エイリアスされていない場合は失敗します。

お役に立てれば幸いです。