易截截图软件、单文件、免安装、纯绿色、仅160KB

谈关于mysql中文模糊查找问题


许多朋友在使用mysql进行中文模糊查找时(如select * from mytable where mysqlname like "%中文%"),就象我现在一样,找到不应找到的行!
有一些朋友提出了解决办法,大致有两种:
其一,加字段属性binary(),
其二,改my.cfg启动参数为default-character-set =gbk(或gb2312).
我从问题的根本原因分析,
其一,字母大小不区分问题(通过方法一可以解决)
其二,这是大多数人没有想到的,我以前也没有想到,
例:
汉字“不”的第1、2字节ascii值分别为:178与187
汉字“安”的第1、2字节ascii值分别为:176与178
汉字“花”的第1、2字节ascii值分别为:187与168
聪明的人已经看出来了:在字符串“安花”中模糊查找字符“不”字时,mysql系统也会认为两者区配!
我的mysql-4.0.12没有解决上述问题。不过我采用一个较笨的办法解决了!
针对以上问题,各位高手有何解决办法!!!一起来说一说!
(提出办法者可得100分)
---------------------------------------------------------------
1: my.ini 文件中加入 default-character-set =gb2312
2: 字段不要加 Binary 属性
3: 执行 select * from mytable where mysqlname like "%不%"
---------------------------------------------------------------
需要说明的是
1:
2:
是最重要的,
如果是查询汉字,
select * from mytable where mysqlname like "%不%"
如果是大小字区分查询英文字符,
select * from mytable where mysqlname like Binary("%A%")
如果上述条件均要
select * from mytable where mysqlname like "%不%" AND mysqlname like Binary("%A%")
不过像这类情况,
已不再建议使用 LIKE '%a%' 形式了
建议使用 全文索引 与 正则表达式 来匹配字串


相关文档:

MySQL手记002

1、创建一个数据库
create database 数据库名
2、创建一个数据表
create table 数据表名(
字段名 类型(长度),
字段名 类型(长度),
字段名 类型(长度),
字段名 类型(长度),
......
字段名 类型(长度)
);
3、查看数据表结构
describe 数据表名;
4、插入一条新记录
insert into 数据表名 values(值1,值2,....值n ......

安装UCenter过程中“不支持Mysql数据库”的解决方法

按照官方提供的“UCenter 1.5.0 安装图文教程”,我开始装上php5,mysql5,apache2.2,结果在http://127.0.0.1/ucenter/install/index.php时遇到了令人郁闷的一刻,
查查资料一看,有很多朋友都遇到类似情况,而且问的帖子到现在还没有给回,心理纳闷呀,为啥Ucenter的提供公司“康盛创想”的开发人员不 ......

MySQL数据库常使用的一些命令

一、数据库连接
命令:mysql -u用户名 -p密码
   mysql -h服务器 -u用户名 -p密码
   mysql -h服务器 -P端口 -u用户名 -p密码 -D数据库名
说明:连接到MySQL数据库服务器,如果指定了“-D数据库”参数,会将指定的数据库设为活动数据库。
例子:mysql -hlocalhost -P3306 -uroot -p123456 -Dtest ......

在mysql中执行sql文件(如test.sql)的常用方法

在mysql中执行sql文件(如test.sql)的常用方法
    为了方便,可以将mysql的安装路径下bin目录的地址放到环境变量PATH中,如;C:\Program Files\MySQL\MySQL Server 5.0\bin。这样在任意位置打开的命令行程序都能找到mysql.exe。
    可以打开mysql命令行,也可以在命令行中通过mysql -u r ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号