本文首发于公众号:Hunter后端
MySQL 查询语句排序的关键字是 order by。
这一节介绍 order by 的如下几个用法:
- order by 的正序、逆序
- 多个字段排序
- 按照中文排序
1、order by 的升序、倒序
order by 的语法是 order by field_name asc/desc
,asc 是升序,desc 是倒序
比如根据 book_name 字段按照升序排列返回:
select * from book order by book_name asc;
其实,asc 是 order by 的默认排序方式,所以如果是升序,asc 是可以省略的。
select * from book order by book_name;
如果是倒序就是用 desc:
select * from book order by book_name desc;
2、多个字段排序
如果是多个字段分别倒序、升序,通过逗号分隔连用即可:
select * from book order by book_name desc, author asc;
3、按照中文排序
现在插入几条带中文的数据:
insert into book (book_name, author) values('中文测试', '作者1'), ('这是测试', '作者2'), ('测试', '作者3');
直接使用排序的逻辑会发现排序是不对的,因为 '测试' 的拼音是在 'ceshi',但是排序却并没有在其他两条数据前面:
select * from book order by book_name;
那么这就需要用到另一个用法:
select * from book order by convert(book_name using gbk);
其语法是 convert(field_name using gbk)
,convert 函数里是字段名,然后 using gbk 表示转化成 gbk 的格式来排序。
如果想获取更多相关文章,可扫码关注阅读:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。