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

  一. 方法1

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

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

  二. 方法2

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

时间: 2024-09-24 00:29:02

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

PHP读MYSQL中文乱码的快速解决方法_php技巧

打算切换某个网站的主机,没想到遇到Php和Mysql中文乱码的问题. 以前的国外主机用的Mysql是4.x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是5.0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题. 只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用

Mysql 数据库更新错误的解决方法_Mysql

语句: UPDATE test SET age=5 WHERE 'name'='王莽' 顾名思义就是把王莽的年龄改为5,但结果很无奈-- 影响行数为0,怎么回事,语法没错,哪里都没问题啊-- 随便改了改了,将name 的两个引号去掉,结果却无意间成功了-- 但是使用图形界面更改时,结果更让人迷惑-- 生成的代码是-- UPDATE `web`.`test` SET `age` = '20' WHERE `test`.`name` = '王莽' LIMIT 1 ; 百思不得其解中-- 通过比对,发

python操作mysql中文显示乱码的解决方法_python

本文实例展示了一个脚本python用来转化表配置数据xml并生成相应的解析代码. 但是在中文编码上出现了乱码,现将解决方法分享出来供大家参考. 具体方法如下: 1. Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8) 2. MySQL数据库charset=utf-8 3. Python连接MySQL是加上参数 charset=utf8 4. 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8) 示例代码如下:

mysql 提示INNODB错误的解决方法_Mysql

出现如下语句:The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working: 是mysql配置文件禁掉了这个选项! 关闭mysql数据库 在mysql的安装目录中找到my.ini文件 找到skip-innodb,在前面加上#号 保存,开启mysql数据库!搞定! 这也是开启Mysql数据库InnoDB功能的方法!!

nodejs连接mysql报connect ECONNREFUSED错误的解决方法

通过AMH面板安装的mysql,用nodejs连接mysql时候结果报[connect ECONNREFUSED]连接错误. 解决方法:添加socketPath 有些mysql 安装的时候不是mysql.sock, 用find命令 find / -name *.sock 我用AMH面板装的Mysql,sockPath是/tmp/mysql-generic-5.5.sock.

MySql 修改密码后的错误快速解决方法_Mysql

设置好密码后,使用数据库时出现如下错误: ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo re executing this statement. You must SET PASSWORD before executing this statement的解决方法 今天在MySql5.6操作时报错:You must SET PASSWORD before executing this

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

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

在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误的解决方法_Linux

1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8 在安装的时候报错: sudo dpkg -i mysql-workbench-community-6.3.8-1ubu1604-amd64.deb 提示:未安装软件包 libpng12-0. 然而使用sudo apt-get -f install后还是报错,后来找到下载libpng12-0的地址并安装. 2.下载安装libpng12-0 下载libpng12-0地址:

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

在mysql教程中关于中文排序是一个比较有意思的问题,特别是对字段为uft-8或不是gbk,gb2312的字段类型是中文排序就出有问题,下面我们来看一个实例. create table `test111cnnet` (                                           `bid` int(4) unsigned not null auto_increment,                 `namerean` varchar(20) character se