查询中文问题 我数据库字符集是utf-8,用sql语句select like '王%'会出现其他姓,什么情况?是不是要用二进制? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不需要用二进制,是字符集设计上的问题。 你可以先 set names 'gbk'; 试一下。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspxMySQL 中文显示乱码 你是在MySQL 下查询的还是在高级语言编的程序中查询的,我在后者中没有问题,(Windows下) CREATE TABLE `person` ( `id` int(8) NOT NULL auto_increment, `szs_gkh` varchar(20) NOT NULL, `szs_xm` varchar(10) NOT NULL, PRIMARY KEY (`id`), KEY `szs_gkh` (`szs_gkh`), KEY `szs_xm` (`szs_xm`),) ENGINE=InnoDB AUTO_INCREMENT=1067 DEFAULT CHARSET=utf8select szs_gkh,szs_xm from person where szs_xm like '王%'显示结果如下:01024 王苗法 013950 徐月贞 013991 王华娟 014066 王和茂 0142 王志江 0157 王珠芬 。如果是select szs_gkh,szs_xm from person where szs_xm like '王苗%'那就正常01024 王苗法 以上执行都是在PHP程序上执行非MYSQL数据库直接查询执行 like '王%'结果记录中包含姓‘汪’的,好像拼音倒确实一样的 CREATE TABLE `szs_person` ( `id` int(8) NOT NULL auto_increment, `szs_gkh` varchar(20) NOT NULL, `szs_xm` varchar(10) NOT NULL, `szs_py` varchar(20) NOT NULL, `szs_yymz` varchar(20) NOT NULL, `szs_xb` enum('y','n') NOT NULL, `szs_date` date NOT NULL, `szs_xl` varchar(20) NOT NULL, `szs_byyx` varchar(20) NOT NULL, `szs_zy` varchar(50) NOT NULL, `szs_zc` varchar(50) NOT NULL, `szs_bm_id` int(4) NOT NULL, `szs_cj_id` int(4) NOT NULL, `szs_gw_id` varchar(50) NOT NULL, `szs_in_date` date NOT NULL, `szs_sfz` varchar(50) NOT NULL, `szs_hj` varchar(50) NOT NULL, `szs_dz` varchar(100) NOT NULL, `szs_sj` varchar(50) NOT NULL, `szs_bgsdh` varchar(20) NOT NULL, `szs_zd` varchar(20) NOT NULL, `szs_msn_qq` varchar(50) NOT NULL, `szs_email` varchar(50) NOT NULL, `szs_da` varchar(50) NOT NULL, `szs_zzmm` varchar(20) NOT NULL, `szs_jg` varchar(20) NOT NULL, `szs_jzzt` varchar(10) NOT NULL, `szs_due_date` date NOT NULL, `szs_out_date` date NOT NULL, `szs_jl` text NOT NULL, `szs_bz` text NOT NULL COMMENT '银行卡号', `szs_qudao` varchar(50) NOT NULL, `szs_jbgz` decimal(8,2) NOT NULL COMMENT '基本工资', `szs_zwgz` decimal(8,2) NOT NULL COMMENT '职位工资', `szs_jngz` decimal(8,2) NOT NULL COMMENT '技能工资', `szs_khgz` decimal(8,2) NOT NULL COMMENT '考核工资', `szs_xlgz` decimal(8,2) NOT NULL COMMENT '学历工资', `szs_syb` enum('y','n') NOT NULL COMMENT '失业保险', `szs_ylb` enum('y','n') NOT NULL COMMENT '养老保险', `szs_mdcb` enum('y','n') NOT NULL COMMENT '医疗保险', `szs_gsb` enum('y','n') NOT NULL COMMENT '工伤保险', `szs_syub` enum('y','n') NOT NULL COMMENT '生育保险', `szs_zjgz` decimal(8,2) NOT NULL COMMENT '总计工资', `szs_hth` varchar(50) NOT NULL COMMENT '合同号', `szs_grp_id` int(4) NOT NULL COMMENT '工作组', `szs_cq` set('1','2') NOT NULL COMMENT '1=上厂,2=下厂', `szs_gzstyle` set('1','2') NOT NULL COMMENT '1=固定,2=计件', PRIMARY KEY (`id`), KEY `szs_gkh` (`szs_gkh`), KEY `szs_xm` (`szs_xm`), KEY `szs_py` (`szs_py`), KEY `szs_yymz` (`szs_yymz`), KEY `szs_bm_id` (`szs_bm_id`), KEY `szs_cj_id` (`szs_cj_id`), KEY `szs_date` (`szs_date`), KEY `szs_in_date` (`szs_in_date`), KEY `szs_due_date` (`szs_due_date`), KEY `szs_out_date` (`szs_out_date`), KEY `szs_sfz` (`szs_sfz`) ) ENGINE=InnoDB AUTO_INCREMENT=1067 DEFAULT CHARSET=utf8szs_xm varchar(10) utf8_general_ciSHOW VARIABLES LIKE 'char%' 执行结果如下:Variable_name Valuecharacter_set_client utf8character_set_connection utf8character_set_database utf8character_set_filesystem binarycharacter_set_results utf8character_set_server utf8character_set_system utf8character_sets_dir C:\\AppServ\\MySQL\\share\\charsets\\sql = "select * from szs_person where szs_xm like '王%'";结果如下:01024 王苗法 013950 汪月贞 013991 王华娟 014066 王和茂 0142 王志江 0157 王珠芬 2236 陶香永 。王和汪拼音相同,但是这个陶~~~,怎么回事 奇葩的sql语句,搞死我了,求救~~~~ mysql 出现 nested exception异常。。。 还是选择数据库软件的问题 mysql中不同的数据库能不能分开放? mysql数据文件空闲空间问题 MySQL中将数据库创建到指定目录的语句 mysql中怎样查找某个字段中的部分字符? 谁帮忙把下面这个mysql的SQL语句转换成标准的SQL mysql插入数据乱码 超简单SQL语句问题 access denied for user ''@'localhost'(using password:NO) 如何进行 MYSQL 监控(性能,查询状态)----分不多,求指导
MySQL 中文显示乱码
`id` int(8) NOT NULL auto_increment,
`szs_gkh` varchar(20) NOT NULL,
`szs_xm` varchar(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `szs_gkh` (`szs_gkh`),
KEY `szs_xm` (`szs_xm`),
) ENGINE=InnoDB AUTO_INCREMENT=1067 DEFAULT CHARSET=utf8select szs_gkh,szs_xm from person where szs_xm like '王%'显示结果如下:
01024 王苗法
013950 徐月贞
013991 王华娟
014066 王和茂
0142 王志江
0157 王珠芬
。如果是select szs_gkh,szs_xm from person where szs_xm like '王苗%'
那就正常
01024 王苗法
`id` int(8) NOT NULL auto_increment,
`szs_gkh` varchar(20) NOT NULL,
`szs_xm` varchar(10) NOT NULL,
`szs_py` varchar(20) NOT NULL,
`szs_yymz` varchar(20) NOT NULL,
`szs_xb` enum('y','n') NOT NULL,
`szs_date` date NOT NULL,
`szs_xl` varchar(20) NOT NULL,
`szs_byyx` varchar(20) NOT NULL,
`szs_zy` varchar(50) NOT NULL,
`szs_zc` varchar(50) NOT NULL,
`szs_bm_id` int(4) NOT NULL,
`szs_cj_id` int(4) NOT NULL,
`szs_gw_id` varchar(50) NOT NULL,
`szs_in_date` date NOT NULL,
`szs_sfz` varchar(50) NOT NULL,
`szs_hj` varchar(50) NOT NULL,
`szs_dz` varchar(100) NOT NULL,
`szs_sj` varchar(50) NOT NULL,
`szs_bgsdh` varchar(20) NOT NULL,
`szs_zd` varchar(20) NOT NULL,
`szs_msn_qq` varchar(50) NOT NULL,
`szs_email` varchar(50) NOT NULL,
`szs_da` varchar(50) NOT NULL,
`szs_zzmm` varchar(20) NOT NULL,
`szs_jg` varchar(20) NOT NULL,
`szs_jzzt` varchar(10) NOT NULL,
`szs_due_date` date NOT NULL,
`szs_out_date` date NOT NULL,
`szs_jl` text NOT NULL,
`szs_bz` text NOT NULL COMMENT '银行卡号',
`szs_qudao` varchar(50) NOT NULL,
`szs_jbgz` decimal(8,2) NOT NULL COMMENT '基本工资',
`szs_zwgz` decimal(8,2) NOT NULL COMMENT '职位工资',
`szs_jngz` decimal(8,2) NOT NULL COMMENT '技能工资',
`szs_khgz` decimal(8,2) NOT NULL COMMENT '考核工资',
`szs_xlgz` decimal(8,2) NOT NULL COMMENT '学历工资',
`szs_syb` enum('y','n') NOT NULL COMMENT '失业保险',
`szs_ylb` enum('y','n') NOT NULL COMMENT '养老保险',
`szs_mdcb` enum('y','n') NOT NULL COMMENT '医疗保险',
`szs_gsb` enum('y','n') NOT NULL COMMENT '工伤保险',
`szs_syub` enum('y','n') NOT NULL COMMENT '生育保险',
`szs_zjgz` decimal(8,2) NOT NULL COMMENT '总计工资',
`szs_hth` varchar(50) NOT NULL COMMENT '合同号',
`szs_grp_id` int(4) NOT NULL COMMENT '工作组',
`szs_cq` set('1','2') NOT NULL COMMENT '1=上厂,2=下厂',
`szs_gzstyle` set('1','2') NOT NULL COMMENT '1=固定,2=计件',
PRIMARY KEY (`id`),
KEY `szs_gkh` (`szs_gkh`),
KEY `szs_xm` (`szs_xm`),
KEY `szs_py` (`szs_py`),
KEY `szs_yymz` (`szs_yymz`),
KEY `szs_bm_id` (`szs_bm_id`),
KEY `szs_cj_id` (`szs_cj_id`),
KEY `szs_date` (`szs_date`),
KEY `szs_in_date` (`szs_in_date`),
KEY `szs_due_date` (`szs_due_date`),
KEY `szs_out_date` (`szs_out_date`),
KEY `szs_sfz` (`szs_sfz`)
) ENGINE=InnoDB AUTO_INCREMENT=1067 DEFAULT CHARSET=utf8szs_xm varchar(10) utf8_general_ciSHOW VARIABLES LIKE 'char%' 执行结果如下:
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir C:\\AppServ\\MySQL\\share\\charsets\\sql = "select * from szs_person where szs_xm like '王%'";
结果如下:
01024 王苗法
013950 汪月贞
013991 王华娟
014066 王和茂
0142 王志江
0157 王珠芬
2236 陶香永
。王和汪拼音相同,但是这个陶~~~,怎么回事