mysql中文排序有效方法sql语句

在mysql教程中关于中文排序是一个比较有意思的问题,特别是对字段为uft-8或不是gbk,gb2312的字段类型是中文排序就出有问题,下面我们来看一个实例。

create table `test111cnnet` (                                
          `bid` int(4) unsigned not null auto_increment,      
          `namerean` varchar(20) character set gbk default null,
          primary key (`id`)                                
        ) ;保存部份数据

insert into `test1` (`id`, `namerean`) values('李');
insert into `test1` (`id`, `namerean`) values('邓');
insert into `test1` (`id`, `namerean`) values('站');

mysql教程>select namerean fromtest111cnnetorder by namerean;

邓(d)
李(l)
站(z)
这样看上去mysql中文排序是没有任问题,因为我们的namerean是gbk编码,所以结果是满意的,那么如果是uft-8就不行了,所以我们构造了一条,

select namerean from test111cnnet order by convert(namerean using gb2312) asc;这样,不管当前字段为什么编码,他都能很好的按中文拼音进行排序了。

时间: 2024-09-30 04:46:54

mysql中文排序有效方法sql语句的相关文章

Mysql中文乱码及导出sql语句和Excel的相关解决方法

  这几天基于Heritrix写了一个爬虫,用到mysql,在导入导出数据时,遇到一些乱码问题,好不容易解决了,记录一下,以备查看. 一.导出数据. 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47. 我想把本机数据库内的数据迁移到另一台机器上,于是使用Workbench中自带的import/export功能,其实就是调用mysqldump.不幸的是,出现了版本不一致的错误. 错误没

解决mysql中文排序无效方法

解决方法: 1.对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary". 2.如果你使用源码编译MySQL,可以编译MySQL时使用 --with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了(默认的是latin1).也可以用 extra-charsets=gb2312,gbk 来加入多个字符集 解决方法二,不影响到其它mys

mysql中文排序注意事项与实现方法_Mysql

mysql中文排序方法1 mysql在查询字符串时是大小写不敏感的,在编绎mysql时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,比较应急的方法是对于包含中文的字段加上"binary"属性,使之作二进制比较, 例如将"name char(10)"改成"name char(10)binary"." (已试验成功) mysql中文排序方法2 编译mysql时使用--with--char

异常-mysql 中多次执行sql语句,提示too many connections

问题描述 mysql 中多次执行sql语句,提示too many connections 解决方案 mysql Too many connectionsmysql: Too many connectionsmysql Too many connections 解决方案二: 看代码是结合上下文.第一份有一个关闭流,是否正确.这是一个jdbc操作mysql,参考一下吧:http://blog.csdn.net/qq_19558705/article/details/49947317 解决方案三: 为

mysql关于热题的sql语句

问题描述 mysql关于热题的sql语句 有这么个需求,有一张问题表,有问题的创建时间 datetime 还有一个评论数 count 现在我需要根据这个公式来进行排序 count/这条记录存在的时间 这条记录存在的时间指的是现在时间减去创建时间,不知道这个怎么实现,求高手帮忙,时间急迫 解决方案 select counttimestampdiff(格式,datetimenow()) from 表 格式:SECOND 秒 MINUTE 分钟 HOUR 时间 DAY 天 MONTH 月 YEAR 年

MySQL中文排序错误的解决方法

一. 方法1 在MySQL中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的.这种情况在MySQL的很多版本中都存在.如果这个问题不解决,那么MySQL将无法实际处理中文. 出现这个问题的原因是:MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,一种解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)&

MySQL 存储过程中执行动态SQL语句的方法_Mysql

drop PROCEDURE if exists my_procedure; create PROCEDURE my_procedure() BEGIN declare my_sqll varchar(500); set my_sqll='select * from aa_list'; set @ms=my_sqll; PREPARE s1 from @ms; EXECUTE s1; deallocate prepare s1; end; 以上是小编为您精心准备的的内容,在的博客.问答.公众号.

mysql 中文乱码 解决方法集锦_Mysql

第一个方法: MySQL 4.1 中文乱码的问题 最近要将 MySQL 4.0 升级到 MySQL 4.1 ,发现了中文乱码的问题,希望以下见解对大家有用. 1. MySQL 4.1 在文字上有很大改进,它有了 Character Set 与 Collation 的慨念. 2. 在 MySQL 4.0 ,一般的程式都会将文字以拉丁文 ( latin) 来储存,就算我们输入中文字,结果仍是放在以拉丁文设置的文字栏里头,这对 MySQL 4.0 与以 MySQL 4.0 为基楚的程式来说,并不会有问

MySQL 数据库性能优化之SQL语句及查询优化

优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段. 降低 CPU 计算 除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了.order by, group by,distinct - 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的数据比较运算).当我们的 IO 优化做到一定