MySql解决不区分大小写和中文模糊查询问题
来源:互联网 发布:法国穆斯林知乎 编辑:程序博客网 时间:2024/05/10 02:53
转载自:http://blog.163.com/origin_zmn/blog/static/1837026922011720101328642/
BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写
第一种方法:
要让mysql查询区分大小写,可以:
select * from some_table where binary str='abc'
select * from some_table where binary str='ABC'
第二方法:
在建表时时候加以标识
create table some_table(
str char(20) binary
)
中文检索会有不准确的问题
因为有的MySQL特别是4.*以前的对于中文检索会有不准确的问题,可以在检索的时候加上binary。
建表:
复制代码 代码如下:
create TABLE usertest (
id int(9) unsigned NOT NULL auto_increment,
username varchar(30) NOT NULL default '',
primary key (id)
)
插入数据:
复制代码 代码如下:
insert into usertest (username) VALUES('美文');
insert into usertest (username) VALUES('美国项目');
insert into usertest (username) VALUES('李文');
insert into usertest (username) VALUES('老唐');
insert into usertest (username) VALUES('梦漂');
insert into usertest (username) VALUES('龙武');
insert into usertest (username) VALUES('夏');
例如:select * from usertest where username like '%夏%' ,结果七条记录都出来了,比较郁闷。
如果使用=而不是like的时候,select * from usertest where username = '夏' ,只出现一个结果。因为mysql 的LIKE操作是按照ASCII 操作的,所以LIKE的时候是可能有问题的。问题继续:如果再加上:
复制代码 代码如下:
insert into usertest (username) VALUES('文');
insert into usertest (username) VALUES('唐');
还是使用select * from usertest where username = '夏' ,结果还是出现3条记录,又郁闷了。解决办法如下:
1.在create的时候就使用binary,而不是在query的时候加。
复制代码 代码如下:
username varchar(30) BINARY NOT NULL default '', 如果表已经建好了,使用:
alter table usertest modify username varchar(32) binary; 来就该表的属性。
2.在query的时候加上binary,select * from usertest where username like binary '%夏%' ,就可以准确的查询出一条记录来。
0 0
- MySql解决不区分大小写和中文模糊查询问题
- 解决MySQL查询不区分大小写
- 解决MySQL查询不区分大小写
- 解决MySQL查询不区分大小写
- 解决MySQL查询不区分大小写
- 解决MySQL查询不区分大小写
- 解决MySQl查询不区分大小写
- 解决MySQL查询不区分大小写
- MySQL查询不区分大小写问题
- MySQL查询不区分大小写问题
- MySQL查询不区分大小写问题
- mysql查询不区分大小写问题
- MySQL查询不区分大小写问题
- mysql 查询条件不区分大小写问题
- MySQL查询不区分大小写问题
- MySQL查询不区分大小写的问题
- MySQL查询不区分大小写问题
- MySQL查询不区分大小写问题
- How to resolve "your security settings have blocked an untrusted application from running
- unix套接字
- Codeforces 534D - Handshakes (贪心 + 模拟)
- ExtJS文件的动态加载 以及 本地文件测试时的跨域问题
- FFMPEG视音频编解码零基础学习方法
- MySql解决不区分大小写和中文模糊查询问题
- 110:Balanced Binary Tree【树】【DFS】
- 64 位oracle 安装 plsql
- php中将数组转成字符串并保存到数据库中的函数
- DirectShow学习笔记总结
- 函数调用以及document.write()练习
- 并行编程之跨平台使用SSE、AVX指令集心得——以单精度浮点数组求和为例(支持vc、gcc,兼容Windows、Linux、Mac)
- 关于THINKPHP中使用kindetior编辑器输出的问题
- arm-linux内核启动学习笔记(一)