1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MySQLのENUM型について

Last updated at Posted at 2020-11-04

enumの列挙値には文字列を指定する。
DBのenum型のカラムに実際に格納される値は、列挙値のインデックスの数値。

--enum型のsizeというカラムを定義する--
CREATE TABLE shirts (
    name VARCHAR(40),
    size ENUM('x-small', 'small', 'medium', 'large', 'x-large')
);

ENUM カラムに数字を格納するのは、分かりづらいので良くない

以下のようなnumbersというENUM型のカラムを定義する


numbers ENUM('0','1','2')

--配列と違ってインデックスは1から始まる--
INSERT INTO t (numbers) VALUES(2)

-- insertした2は、インデックスとして解釈されるため1が返る --
SELECT * FROM t 
INSERT INTO t (numbers) VALUES('2')

-- insertした'2'は、列挙値と一致するので2が返る --
SELECT * FROM t 
INSERT INTO t (numbers) VALUES('3')

-- insertした'3'は、どの列挙値とも一致しないのでインデックスとして扱われ、2が返る --
SELECT * FROM t 

公式ドキュメント: https://dev.mysql.com/doc/refman/5.6/ja/enum.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?