MySQL: concatで文字列連結してselect
例えば、商品IDのような一意なコードがあったとして、
そのコードが、`type`と`name`を "-"(ハイフン) でつないだ文字列だとする。
MySQLには`type`と`name`でUnique KEYに設定しているテーブルに格納し、
抽出したい時には、商品IDとしてとりだしたい、という要望があったので、調査。
結論としては、以下のように、concatを使った。
特に難しいことは何もないけど、自分用にメモ。
そのコードが、`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)
特に難しいことは何もないけど、自分用にメモ。