J'ai précédemment créé une table MySQL et maintenant je veux savoir quel classement certains champs utilisent. Quelles commandes SQL ou MySQL puis-je utiliser pour découvrir cela?
Vous pouvez utiliser SHOW FULL COLUMNS FROM tablename
qui renvoie une colonne Collation, par exemple pour une table 'comptes' avec un classement spécial sur la colonne 'name'
mysql> SHOW FULL COLUMNS FROM accounts;
+----------+--------------+-------------------+------+-----+---------+----------+
| Field | Type | Collation | Null | Key | Default | Extra |
+----------+--------------+-------------------+------+-----+---------+----------|
| id | int(11) | NULL | NO | PRI | NULL | auto_inc |
| name | varchar(255) | utf8_bin | YES | | NULL | |
| email | varchar(255) | latin1_swedish_ci | YES | | NULL | |
...
Ou vous pouvez utiliser SHOW CREATE TABLE tablename
qui se traduira par une déclaration comme
mysql> SHOW CREATE TABLE accounts;
CREATE TABLE `accounts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
...
Si vous souhaitez le classement pour cette colonne spécifique (pour une utilisation possible avec une sous-requête) ...
SELECT COLLATION_NAME
FROM information_schema.columns
WHERE TABLE_SCHEMA = 'tableschemaname'
AND TABLE_NAME = 'tablename'
AND COLUMN_NAME = 'fieldname';
SHOW CREATE TABLE nom_table vous montrera le classement de chaque colonne ainsi que le classement par défaut