MySQL模糊查询(like)时区分大小写
问题说明:通过上面的语句,你会发现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;
参考文献:http://www.cnblogs.com/pinnasky/archive/2012/09/11/2680264.html
参考:
http://www.cnblogs.com/zi-xing/p/4298697.html
最新文章
- 3.python算法之完全数
- linux中用shell获取时间,日期
- JMeter结果分析
- HDU3507 Print Article(斜率优化dp)
- 用NPOI导出Excel
- 整合Spring与Hibernate
- The content of element type ";beans"; must match ";(description?,(import|alias|bean)*)
- linux查看与开启ssh
- FPGA知识大梳理(一)对FPGA行业的一点感言
- DFS-leetcode Combination Sum I/I I
- MVC4的过滤器
- Swiper+JS 上拉刷新
- 25.django Model
- Ajax实现注册无刷新验证用户名是否存在
- [加密]在AES的CBC模式下 pydes vs crypto
- (7)STM32使用HAL库实现RS485通讯(全双工串口)
- quratz启动流程
- python socket 函数介绍
- Code::Blocks 导入Makefile工程
- java代码逆向工程生成uml
热门文章
- [Matlab]Upper Triangularization &; Back Substitution代码
- LR11中自定义函数web_custom_request请求
- 【C#】线程问题
- debug id
- 邝斌带你飞之数论专题--Maximum GCD UVA - 11827
- FastReport.Net使用:[3]简单报表一
- luogu P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
- hdu 3001 三进制状压
- 升级到php7和安装拓展(mac centos)
- php 导出excel