Maison> base de données> tutoriel mysql> le corps du texte

Comment montrer que chaque énumération MySQL a une valeur d'index ?

王林
Libérer: 2023-08-28 09:01:02
avant
641 Les gens l'ont consulté

Comment montrer que chaque énumération MySQL a une valeur dindex ?

En fait, les éléments répertoriés dans la spécification de la colonne ENUM se voient attribuer un numéro d'index commençant à 1. Le terme « index » fait ici référence à la position dans la liste des valeurs d’énumération, elles n’ont rien à voir avec l’index de la table. Avec l'exemple suivant, nous pouvons montrer que chaque énumération MySQL a une valeur d'index -

En insérant le numéro d'index au lieu de la valeur de l'énumération

Nous pouvons insérer dans la colonne ENUM en insérant leur numéro d'index au lieu d'écrire la valeur. Par exemple, dans le tableau ci-dessous, nous avons deux valeurs ENUM « réussite » et « échec ». Puisque « réussite » est écrit en premier dans la liste d'énumération, il obtient le numéro d'index « 1 » et le numéro d'index de « échec » est « 2 ». Maintenant, nous pouvons également insérer la valeur en insérant le numéro d'index comme indiqué ci-dessous -

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)
Copier après la connexion

Dans la requête ci-dessus, nous avons utilisé les numéros d'index 1 et 2 pour représenter respectivement les valeurs d'énumération réussies et échouées.

En insérant une chaîne vide au lieu d'une valeur d'énumération

La valeur d'index d'une chaîne vide est 0. Le mode SQL ne peut pas être TRADITIONAL, STRICT_TRANS_TABLES ou STRICT_ALL_TABLES avant d'insérer la chaîne vide. Nous pouvons le comprendre avec l'exemple suivant −

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)
Copier après la connexion

La requête ci-dessus insérera une chaîne vide à la position de la valeur enum. MySQL insère une chaîne vide avec l'avertissement suivant.

mysql> Show warnings; +---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1265 | Data truncated for column 'Result' at row 1 | +---------+------+---------------------------------------------+ 1 row in set (0.00 sec)
Copier après la connexion

Maintenant, lorsque nous inspectons la table, nous pouvons voir qu'il y a une chaîne vide dans le champ 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.
Copier après la connexion

En insérant NULL au lieu de la valeur d'énumération

Nous pouvons insérer NULL à la place de la valeur d'énumération car nous ne spécifions pas NOT NULL pour la colonne ENUM. La valeur d'index de NULL est NULL. Par exemple, à l'aide de la requête suivante, nous insérons NULL dans la colonne enum de la table "result" et pouvons vérifier sa valeur d'index.

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)
Copier après la connexion

La requête ci-dessus insère une valeur NULL à la position de la valeur enum, qui peut être vérifiée à l'aide de la requête d'aide ci-dessous -

mysql> Select * from result; +-----+-------+-------+ | Id | Name | Grade | +-----+-------+-------+ | 100 | Rahul | NULL | +-----+-------+-------+ 1 row in set (0.00 sec)
Copier après la connexion

Maintenant, avec l'aide de la requête suivante, nous pouvons observer que la valeur d'index de NULL est NUL.

mysql> Select Grade+0 As Grade_index from result; +-------------+ | Grade_index | +-------------+ | NULL | +-------------+ 1 row in set (0.00 sec)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!