집 >데이터 베이스 >MySQL 튜토리얼 >MySQL ENUM 열에 숫자를 저장하면 안되는 이유는 무엇입니까?
MySQL은 ENUM 멤버를 참조하기 위해 ENUM 값을 내부적으로 정수 키(인덱스 번호)로 저장합니다. ENUM 열에 정수 값을 저장하지 않는 주된 이유는 분명히 MySQL이 값이 아닌 인덱스를 참조하게 되고 그 반대의 경우도 마찬가지이기 때문입니다.
다음 예를 보면 명확하게 알 수 있습니다.
mysql> Create table enmtest(Val ENUM('0','1','2')); Query OK, 0 rows affected (0.18 sec) mysql> Insert into enmtest values('1'),(1); Query OK, 2 rows affected (0.19 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> Select * from enmtest; +-----+ | Val | +-----+ | 1 | | 0 | +-----+ 2 rows in set (0.00 sec)
여기서 '1'을 문자열로 삽입했는데 실수로 따옴표 없이 숫자 1도 삽입했습니다. MySQL은 숫자 입력을 멤버 목록의 첫 번째 항목(예: 0)에 대한 내부 참조인 인덱스 값으로 혼란스럽게 사용합니다.
위 내용은 MySQL ENUM 열에 숫자를 저장하면 안되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!