您的位置:首页 > 数据库 > SQL语言

MySQL中对varchar类型的排序

更多 2016/7/5 来源:SQL学习浏览量:1539
学习标签: MySQL
本文导读:在MySQL应用中,经常需要对数据进行排序,如果需要排序的字段是数值类型、日期类型,则只需要order by 就可以了,如果字段是varchar字符类型时,如何才能正确排序呢?

一、varchar类型的字段保存的值是数值类型

 

1、使用MySQL函数CAST

例如:


select server_id from cardserver where game_id = 1 order by CAST(server_id as SIGNED) desc limit 10;

 

2、使用MySQL函数CONVERT

例如:


select server_id from cardserver where game_id = 1 order by CONVERT(server_id,SIGNED) desc limit 10;

 

3、使用 字段名+0 的方式

例如:

 

select server_id from cardserver where game_id = 1 order by server_id+0 desc limit 10;

 

二、varchar类型的字段保存的值是英文字母或中文等

要想按汉字的拼音来排序,需要把数据库的字符集设置为UTF8,然后在order by 时候强制把该字段信息转换成GBK,这样出来的结果就是按拼音顺序排序的。

例如:

 

SELECT * FROM table_name ORDER BY CONVERT(column_name USING gbk);

 

收藏
288
很赞
97
您可能感兴趣