发现MySQL列的排序规则

问题描述 投票:34回答:3

我之前创建了一个MySQL表,现在我想找出一些字段正在使用的排序规则。我可以使用哪些SQL或MySQL命令来发现它?

mysql collation
3个回答
51
投票

您可以使用返回列Collat​​ion的SHOW FULL COLUMNS FROM tablename,例如对于'name'列上具有特殊排序规则的表'accounts'

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    |          |
...

或者你可以使用SHOW CREATE TABLE tablename,它会产生类似的声明

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,
...

10
投票

如果您想要对该特定列进行排序(可能与子查询一起使用)...

SELECT COLLATION_NAME
FROM information_schema.columns
WHERE TABLE_SCHEMA = 'tableschemaname'
AND TABLE_NAME = 'tablename'
AND COLUMN_NAME = 'fieldname';

3
投票

SHOW CREATE TABLE tablename将显示每列的排序规则以及默认排序规则

© www.soinside.com 2019 - 2024. All rights reserved.