开发者社区> 问答> 正文

MySQL中字段排序区分大小写吗? 如何做到先排序完小写,再排序大写

已知MySQL表结构

mysql> desc books;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| name  | varchar(2) | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+
1 row in set (0.00 sec)

已知表中的数据

mysql> select * from books;
+------+
| name |
+------+
| b    |
| a    |
| c    |
| A    |
| B    |
| C    |
+------+
6 rows in set (0.00 sec)

已知对数据内容排序

mysql> select * from books order by name asc;
+------+
| name |
+------+
| a    |
| A    |
| b    |
| B    |
| c    |
| C    |
+------+
6 rows in set (0.00 sec)

排序结果a,A,都排在了前面,我想知道,如何做到排序结果为

a
b
c
A
B
C

或者是

A
B
C
a
b
c

展开
收起
睡着了去做梦 2021-10-11 14:24:42 725 0
2 条回答
写回答
取消 提交回答
  • 可以区分大小写用binary, 自定义排序用field

    2021-10-15 18:52:17
    赞同 展开评论 打赏
  • MySQL在设计表时,对varchar类型字段可设置字符集和排序规则,对于排序规则:

    1、有*_ci排序规则是不区分大小写的,也就是说,a = A

    2、有*_bin排序规则是区分大小写的,a与A不一样。

    2021-10-12 09:19:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像