BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写

如下:

mysql> select binary 'ABCD'='abcd' COM1, 'ABCD'='abcd' COM2;

+--------+-----------+

| COM1 | COM2 |

+--------+-----------+

|      0     |      1      |

+---------+-----------+

1 row in set (0.00 sec)

____________________________________________________________

(仅仅有些而已!4.*以前)

因为有的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  '%夏%' ,就可以准确的查询出一条记录来。MYSQL的binary解决mysql数据大小写敏感问题

mysql binary 查询_MYSQL的binary解决mysql数据大小写敏感问题 《转载》相关推荐

  1. mysql客户端查询_MySQL数据库之利用mysql客户端查询UCSC数据库

    本文主要向大家介绍了MySQL数据库之利用mysql客户端查询UCSC数据库 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. UCSC Genome Browser是由Unive ...

  2. mysql longtext 查询_mysql中longtext存在大量数据时,会导致查询很慢?

    一个表,1.5w条数据,字段: id,name,content,last_update_time id,自定义主键 name,varchar类型 content是longtext类型, last_up ...

  3. mysql 57授权失败_MYSQL教程完美解决mysql客户端授权后连接失败的问题

    <MYSQL教程完美解决mysql客户端授权后连接失败的问题>要点: 本文介绍了MYSQL教程完美解决mysql客户端授权后连接失败的问题,希望对您有用.如果有疑问,可以联系我们. MYS ...

  4. mysql 表的第2条到4条记录,mysql怎么查询第2到4条数据

    mysql怎么查询第2到4条数据 在mysql中可以通过"LIMIT"关键字来查询第2到4条数据,具体语句为"SELECT * FROM 数据表名 LIMIT 1,3;& ...

  5. Mysql中查询连续一段时间内统计数据

    Mysql中查询连续一段时间内统计数据 在一次生产环境中遇到统计当前日期的前10天每天的订单量,一开始想到的就是根据日期进行分组统计,但在查询的时候会存在一个问题:有可能某一天没有订单交易,日期分组中 ...

  6. MySQL分页查询慢的方案解决

    背景 我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用limit加偏移量: select * from table where column=xxx order by xxx lim ...

  7. mysql分页查询报错,及解决

    mysql分页查询报错: 前提: 1.每页1000条数据 2.查到57页的时候,就报错了 以下是错误信息: org.springframework.jdbc.UncategorizedSQLExcep ...

  8. 分析mysql慢查询_mysql慢查询的分析方法_MySQL

    本文主要介绍的是MySQL慢查询分析方法,前一段日子,我曾经设置了一次记录在MySQL数据库中对慢于1秒钟的SQL语句进行查询.想起来有几个十分设置的方法,有几个参数的名称死活回忆不起来了,于是重新整 ...

  9. mysql 慢查询_mysql如何捕捉慢日志查询

    慢日志查询日志 查询超过变量 long_query_time指定时间值的为慢查询,但是查询获取锁(包括锁等待)的时间不计入查询时间内,mysql 记录慢查询日志是在查询执行完毕且已经完全释放锁之后才记 ...

最新文章

  1. 【文本分类】基于改进CHI和PCA的文本特征选择
  2. DirectX11 With Windows SDK--01 DirectX11初始化
  3. python spacy [E050] Can't find model 'en_core_web_sm'
  4. GoldenGate常用命令(九)
  5. linux环境 前端开发环境搭建,Linux运维知识之linux 前端环境搭建
  6. 剑指offer面试题36. 二叉搜索树与双向链表(中序遍历)(递归)
  7. php文字音频插件下载安装,Goodhertz音频插件下载
  8. Game Center
  9. 案例实践:用SPSS做K均值聚类分析
  10. Python 基础 1.0
  11. 突然觉得一个感情空虚的人是多么的痛苦?
  12. 使用jira管理Scrum敏捷项目实战(四)jira自定义电子看板、敏捷看板、KANBAN配置
  13. 用c#读取并分析sql2005日志
  14. java 根据经纬度坐标查询出来附近店铺
  15. 【jieba获取关键词】
  16. codeblocks错误
  17. 百度编辑器对H5代码修改
  18. 获取字符长度并控制字数和行数(超出显示..., 悬浮显示所有内容)
  19. [展览人周刊]华展云20170703期
  20. Google earth engine的python版安装:GEEMAP

热门文章

  1. 【Docker】Docker安装telnet
  2. 【redis】Redis简介
  3. 95-170-050-源码-Time-flink的时间及时区问题解决
  4. Spring :事务使用的注意事项
  5. kylin: build cube Hbase: Region Server 意外退出
  6. java tcp ack_TCP三次握手和四次挥手以及11种状态
  7. 你真的理解BIO、NIO、AIO的区别吗?
  8. linux mysql-proxy 0.8.0_mysql主从复制及mysql-proxy0.8安装
  9. 最优化设置mysql的max_connections
  10. js中字符串操作函数