【发布时间】:2011-11-28 20:46:49
【问题描述】:
我之前创建了一个 MySQL 表,现在我想了解某些字段使用的排序规则。我可以使用哪些 SQL 或 MySQL 命令来发现这一点?
【问题讨论】:
我之前创建了一个 MySQL 表,现在我想了解某些字段使用的排序规则。我可以使用哪些 SQL 或 MySQL 命令来发现这一点?
【问题讨论】:
您可以使用SHOW FULL COLUMNS FROM tablename,它返回一个列Collation,例如对于在“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,
...
【讨论】:
如果您只想要特定列的排序规则(可能与子查询一起使用)...
SELECT COLLATION_NAME
FROM information_schema.columns
WHERE TABLE_SCHEMA = 'tableschemaname'
AND TABLE_NAME = 'tablename'
AND COLUMN_NAME = 'fieldname';
【讨论】:
SHOW CREATE TABLE [tablename] 将显示每列的排序规则以及默认排序规则。
【讨论】: