MySQL: concatで文字列連結してselect

例えば、商品IDのような一意なコードがあったとして、
そのコードが、`type`と`name`を "-"(ハイフン) でつないだ文字列だとする。

MySQLには`type`と`name`でUnique KEYに設定しているテーブルに格納し、
抽出したい時には、商品IDとしてとりだしたい、という要望があったので、調査。

結論としては、以下のように、concatを使った。

mysql> show create table test1 \G
*************************** 1. row ***************************
       Table: test1
Create Table: CREATE TABLE `test1` (
  `type` int(11) NOT NULL,
  `name` char(32) NOT NULL,
  KEY `id` (`type`,`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> select * from test1;
+------+-------+
| type | name  |
+------+-------+
|    1 | name1 |
|    2 | name2 |
|    3 | name3 |
+------+-------+
3 rows in set (0.00 sec)

mysql> select concat(type, '-', name) from test2;
+-------------------------+
| concat(type, '-', name) |
+-------------------------+
| 1-name1                 |
| 1-name2                 |
| 1-name2                 |
+-------------------------+
3 rows in set (0.00 sec)

特に難しいことは何もないけど、自分用にメモ。

人気の投稿