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

2016-02-19 14:45 4 1 收藏

下面,图老师小编带您去了解一下MySQL中文排序错误的解决方法,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - 编程语言 】

一. 方法1

  在MySQL中,进行中文排序和查找的时候,对汉字的排序和查找结果是错误的。这种情况在MySQL的很多版本中都存在。如果这个问题不解决,那么MySQL将无法实际处理中文。

  出现这个问题的原因是:MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,一种解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

二. 方法2

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  如果你使用源码编译MySQL,可以编译MySQL时使用--with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了。

来源:http://www.tulaoshi.com/n/20160219/1607816.html

延伸阅读
大概浏览了一下,主要可能是因为以下几种原因: 一种可能是发送的SQL语句太长,以致超过了max_allowed_packet的大小,如果是这种原因,你只要修改my.cnf,加大max_allowed_packet的值即可。 还有一种可能是因为某些原因导致超时,比如说程序中获取数据库连接时采用了Singleton的做法,虽然多次连接数据库,但其实使用的都是同一个连接,而且程...
mysql中文排序方法1 mysql在查询字符串时是大小写不敏感的,在编绎mysql时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,比较应急的方法是对于包含中文的字段加上"binary"属性,使之作二进制比较, 例如将"name char(10)"改成"name char(10)binary"." (已试验成功) mysql中文排序方法2 编译...
如果这个问题不解决,那么MySQL将无法实际处理中文。 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。 解决方法: 对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name c...
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.util; import java.io.UnsupportedEncodingException; import java.sql.*; /** * * @author swing */ public class DbUtility {     private Connection conn = null;     private ResultSe...
启动MySQL出错,查看了下状态,发现提示MySQL is not running,but lock exists: 一个网友说可能和log文件有关,于是将log文件给移除了,再重启MySQL终于OK了 找了下资料,基本上都是说: 代码如下: # chown -R mysql:mysql /var/lib/mysql # rm /var/lock/subsys/mysql # service mysql restart 执行完发现还是这个提示。 因为...

经验教程

512

收藏

98
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部