> 데이터 베이스 > MySQL 튜토리얼 > 각 MySQL 열거에 인덱스 값이 있음을 표시하는 방법은 무엇입니까?

각 MySQL 열거에 인덱스 값이 있음을 표시하는 방법은 무엇입니까?

王林
풀어 주다: 2023-08-28 09:01:02
앞으로
740명이 탐색했습니다.

각 MySQL 열거에 인덱스 값이 있음을 표시하는 방법은 무엇입니까?

실제로 ENUM 열 사양에 나열된 요소에는 1부터 시작하는 인덱스 번호가 할당됩니다. 여기서 "인덱스"라는 용어는 열거 값 목록의 위치를 ​​나타내며 테이블 인덱스와는 아무 관련이 없습니다. 다음 예를 통해 모든 MySQL 열거형에 인덱스 값이 있음을 보여줄 수 있습니다.

열거형 값 대신 인덱스 번호를 삽입하여

값 값을 쓰는 대신 인덱스 번호를 삽입하여 ENUM 열에 삽입할 수 있습니다. 예를 들어 아래 표에는 'pass'와 'fail'이라는 두 개의 ENUM 값이 있습니다. 열거형 리스트에는 'pass'가 가장 먼저 기록되므로 인덱스 번호 '1'을 얻고, 'fail'의 인덱스 번호는 '2'가 된다. 이제 아래와 같이 인덱스 번호를 삽입하여 값을 삽입할 수도 있습니다. -

mysql> Insert into marks(id,name,result)values(103,'Daksh','1');
Query OK, 1 row affected (0.06 sec)

mysql> Insert into marks(id,name,result)values(104,'Shayra','2');
Query OK, 1 row affected (0.07 sec)

mysql> Select * from marks;
+-----+---------+--------+
| id  | Name    | Result |
+-----+---------+--------+
| 101 | Aarav   | Pass   |
| 102 | Yashraj | Fail   |
| 103 | Daksh   | Pass   |
| 104 | Shayra  | Fail   |
+-----+---------+--------+
4 rows in set (0.00 sec)
로그인 후 복사

위 쿼리에서는 인덱스 번호 1과 2를 사용하여 각각 열거 값 통과 및 실패를 나타냅니다.

열거형 값 대신 빈 문자열을 삽입하여

빈 문자열의 인덱스 값은 0입니다. 빈 문자열을 삽입하기 전에는 SQL 모드가 TRADITIONAL, STRICT_TRANS_TABLES 또는 STRICT_ALL_TABLES일 수 없습니다. 다음 예시를 통해 이해할 수 있습니다. −

mysql> SET SESSION sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

mysql> Insert into marks(id, name, result) values(105,'Yashraj','');
Query OK, 1 row affected, 1 warning (0.06 sec)
로그인 후 복사

위 쿼리는 열거형 값 위치에 빈 문자열을 삽입합니다. MySQL은 다음 경고와 함께 빈 문자열을 삽입합니다.

mysql> Show warnings;
+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1265 | Data truncated for column 'Result' at row 1 |
+---------+------+---------------------------------------------+
1 row in set (0.00 sec)
로그인 후 복사

이제 테이블을 살펴보면 ENUM 필드에 빈 문자열이 있음을 알 수 있습니다.

mysql> Select * from marks;
+-----+---------+--------+
| id  | Name    | Result |
+-----+---------+--------+
| 101 | Aarav   | Pass   |
| 102 | Yashraj | Fail   |
| 103 | Daksh   | Pass   |
| 104 | Shayra  | Fail   |
| 105 | Yash    |        |
+-----+---------+--------+
5 rows in set (0.00 sec)

mysql> Select result+0 As result_index from marks;
+--------------+
| result_index |
+--------------+
| 1            |
| 2            |
| 1            |
| 2            |
| 0            |
+--------------+
5 rows in set (0.01 sec)
From the output of above query, it is clear that the index value of the empty string is 0.
로그인 후 복사

열거값 대신 NULL을 삽입하여

ENUM 열에 NOT NULL을 지정하지 않기 때문에 열거값 대신 NULL을 삽입할 수 있습니다. NULL의 인덱스 값은 NULL입니다. 예를 들어, 다음 쿼리를 사용하여 테이블 "result"의 enum 열에 NULL을 삽입하고 해당 인덱스 값을 확인할 수 있습니다.

mysql> Create table result(Id INT PRIMARY KEY NOT NULL, Name Varchar(10), GradeENUM('POOR','GOOD'));
Query OK, 0 rows affected (0.25 sec)

mysql> Insert into result(id, name, grade) values(100, 'Rahul', NULL);
Query OK, 1 row affected (0.06 sec)
로그인 후 복사

위 쿼리는 enum 값 위치에 NULL 값을 삽입하는데, 이는 아래 도움말 쿼리를 사용하여 확인할 수 있습니다.

mysql> Select * from result;
+-----+-------+-------+
| Id  | Name  | Grade |
+-----+-------+-------+
| 100 | Rahul | NULL  |
+-----+-------+-------+
1 row in set (0.00 sec)
로그인 후 복사

이제 다음 쿼리의 도움으로 NULL의 인덱스 값이 다음과 같은 것을 관찰할 수 있습니다. 없는.

rreee

위 내용은 각 MySQL 열거에 인덱스 값이 있음을 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿