博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL模糊查询(like)时区分大小写
阅读量:5150 次
发布时间:2019-06-13

本文共 1103 字,大约阅读时间需要 3 分钟。

问题说明:通过上面的语句,你会发现MySQL的like查询是不区分大小写的,因为我的失误,把Joe写成了joe才发现了这个东东吧。但是,有时候,我们需要区分大小写的是,该怎么办呢?解决方法如下:

方法一(查询时,指定区分大小写)

很简单,在like的后面加个binary就可以了,适用于表的结构不易改变的情况下。大多数人发现这个问题的时候,往往表的结构是不能改变的,所以,这种方法还是很好的。

接下来还有其他的方法,是在建表的时候,设置好区分大小的。

也可以在建表时,加以标识 

create  table  table_name(  

     a varchar (20) binary

深入了解:

首先,你要了解的是:在MySQL中,对于Column Collate其约定的命名方法如下:

*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的

*_cs: case sensitive collation,区分大小写

*_ci: case insensitive collation,不区分大小写

建表的过程中设置字符区分大小写,然后插入3条记录测试。

很多时候,我们的首次建表都是不全面的,我在想,能不能以后添加,修改表的特征,这个是可以的。

就刚才那个student_web表吧。

但是,失败了。我不知道为什么,希望您可以给我帮助。

上面使用_bin来区分大小写的,还可以使用

create table table_name (word VARCHAR(10)) CHARACTER SET latin1 COLLATE latin1_general_cs;

或者,在查询时指定collation

建表时:mysql> create table table_name (word VARCHAR(10)) CHARACTER SET latin1; 

查询时:mysql> SELECT * FROM table_name WHERE word COLLATE latin1_bin LIKE 'F%';  放在like前面

或:mysql> SELECT * FROM table_name WHERE word LIKE 'F%' COLLATE latin1_bin; 放在最后

或:mysql> SELECT * FROM case_test WHERE word LIKE 'F%' COLLATE latin1_general_cs

参考文献:

转载于:https://www.cnblogs.com/zi-xing/p/4298697.html

你可能感兴趣的文章
Reveal 配置与使用
查看>>
Java中反射的学习与理解(一)
查看>>
nginx配置socket服务
查看>>
C语言初学 俩数相除问题
查看>>
B/S和C/S架构的区别
查看>>
[Java] Java record
查看>>
jQuery - 控制元素显示、隐藏、切换、滑动的方法
查看>>
postgresql学习文档
查看>>
Struts2返回JSON数据的具体应用范例
查看>>
js深度克隆对象、数组
查看>>
c++ 贪吃蛇
查看>>
socket阻塞与非阻塞,同步与异步
查看>>
图论求割点模板
查看>>
poj3903 Stock Exchange 二分+dp
查看>>
leetcode 141. Linked List Cycle 、 142. Linked List Cycle II
查看>>
团队工作第二天
查看>>
python escape sequences
查看>>
【转】Odoo:基本字段类型
查看>>
将中文数字转换层阿拉伯数字
查看>>
用C#调用蓝牙编程
查看>>