如果想要对查询出来的内容进行排序,并且查询的内容是中文,那么解决的办法:
成都创新互联专注于印台企业网站建设,成都响应式网站建设,商城网站定制开发。印台网站建设公司,为印台等地区提供建站服务。全流程按需网站策划,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
1、SELECT * FROM tbl_name ORDER BY column_name DESC;
tbl_name:表示“表名”
column_name:表示排序的列名
DESC:表示降序排序的
ASC:表示升序排序
文本内容的排序其实是按照字符在字符的字典序的,相当于是先是数字,然后是英文字母,英文字母按照a-z的字典序。
对于中文,也是按照字典序排序的,这个汉字字典序可以看作是对应拼音的字典序,其实内部是按照字符集中汉字编码的从小到大顺序,只不过汉字的编码顺序是以拼音的字典序排列的,与拼音字典序的主要不同体现在多音字上,对于一个汉字虽然可以有多个发音,但只有一个内部编码
需要输入时char再查询数据表如何轻松把mysql数据表对齐。
只需要输入时charsetgbk就ok了简单易操作,别问我怎么知道的,百度是个好东西。此外,还有一个问题就是怎么把中文正常显示。
charset gbk;
使用charset命令即可,
mysql charset utf8;
Charset changed
mysql select * from tb_ddz;
+-----------+-----------------+------+---------------------------+------+------+-------+
| ip | nick | sex | imgsrc | win | lose | score |
+-----------+-----------------+------+---------------------------+------+------+-------+
| 127.0.0.1 | 鐢?鐢? | man | img/DMPhotoBk.png | 0 | 0 | 100 |
| 127.0.0.2 | 姝﹁棨娓告垙 | man | photo/姝﹁棨娓告垙.png | 0 | 0 | 100 |
| 127.0.0.3 | 娴烽┈璧栦汉 | man | photo/娴烽┈璧栦汉.png | 0 | 0 | 100 |
| 127.0.0.4 | 鍩庝箣鍐呭厕涔? | man | photo/鍩庝箣鍐呭厕涔?png | 0 | 0 | 100 |
+-----------+-----------------+------+---------------------------+------+------+-------+
4 rows in set (0.06 sec)
mysql charset gbk;
Charset changed
mysql select * from tb_ddz;
+-----------+------------+------+----------------------+------+------+-------+
| ip | nick | sex | imgsrc | win | lose | score |
+-----------+------------+------+----------------------+------+------+-------+
| 127.0.0.1 | 男 生 | man | img/DMPhotoBk.png | 0 | 0 | 100 |
| 127.0.0.2 | 武藤游戏 | man | photo/武藤游戏.png | 0 | 0 | 100 |
| 127.0.0.3 | 海马赖人 | man | photo/海马赖人.png | 0 | 0 | 100 |
| 127.0.0.4 | 城之内克也 | man | photo/城之内克也.png | 0 | 0 | 100 |
+-----------+------------+------+----------------------+------+------+-------+
4 rows in set (0.00 sec)
mysql
按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序;
如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了)。
直接在查询语句后面 添加 order by name asc; 查询结果按照姓氏的升序排序;
如果存储姓名的字段采用的是 utf8字符集,需要在排序的时候对字段进行转码;对于的代码是 order by convert(name using gbk) asc; 同样,查询的结果也是按照姓氏的升序排序;
我的可以
mysql desc studentinfo;
+-------------+----------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------------------------+------+-----+---------+-------+
| sno | int(8) | NO | PRI | NULL | |
| sex | enum('男','女') | NO | | NULL | |
| age | int(3) | YES | | NULL | |
| identify | varchar(18) | NO | UNI | NULL | |
| tel | varchar(15) | YES | | NULL | |
| car_type | varchar(4) | NO | | NULL | |
| enroll_time | date | NO | | NULL | |
| leave_time | date | YES | | NULL | |
| scondition | enum('学习','结业','退学') | NO | | NULL | |
| s_text | text | YES | | NULL | |
+-------------+----------------------------+------+-----+---------+-------+
10 rows in set (0.00 sec)
mysql show variables;
+-----------------------------------------+---------------------------------------------------------------------
| Variable_name | Value
+-----------------------------------------+---------------------------------------------------------------------
| auto_increment_increment | 1
| auto_increment_offset | 1
| autocommit | ON
| automatic_sp_privileges | ON
| back_log | 50
| basedir | D:\Program Files\MySQL\MySQL Server 5.1\
| big_tables | OFF
| binlog_cache_size | 32768
| binlog_direct_non_transactional_updates | OFF
| binlog_format | STATEMENT
| bulk_insert_buffer_size | 8388608
| character_set_client | gbk
| character_set_connection | gbk
| character_set_database | utf8
| character_set_filesystem | binary
| character_set_results | gbk
| character_set_server | utf8
| character_set_system | utf8
| character_sets_dir | D:\Program Files\MySQL\MySQL Server 5.1\share\charsets\
| collation_connection | gbk_chinese_ci
| collation_database | utf8_general_ci
| collation_server | utf8_general_ci
| completion_type | 0