SQL查询结果区分大小写
2016-01-28 15:00
309 查看
SQL查询结果区分大小写
如何在MS SQL 2005和MySQL数据库中查询结果区分大小写。
工具/原料
MS SQL2005,MySql
方法/步骤
数据库中使用到的通配符及含义:“.”:匹配任意单个字符。
“?”:匹配前面的子表达式0次或1次。
“+”:匹配前面的子表达式1次或多次。
“*”:匹配前面的子表达式0次或多次。x*,表示0个或多个x字符;[0-9]*,匹配任何数量的数字。
“^”:表示匹配开始位置。
“$”:表示匹配结束位置。
“[]”:表示一个集合。[hi],表示匹配h或i;[a-d],表示匹配a、b、c、d中任一个。“{}”:表示重复的次数。1{3},表示匹配3个1,即111;[0-9]{1,10},表示匹配1到10个数字。
例如:
查询user库中name只以“A%B”三个字符开头的记录。
------------------------
在数据库中“%”是通配符不能直接使用。
在MySQL中的方法:
1)使用转义字符\:
select * from user where name like "A\%B%";
2)$被转义:
select * from user where name like "A$%B%" escape "$";
在MS SQL2005中的方法:
1)select * from user where name like "A[%]B%";
2)select * from user where name like "A$%B%" escape "$";
查询结果并不是只查到了“A%B”开头的记录,例如“a%B”,小写的a或b也会被查出来。
-----------------
这是为什么呢?
原来,在数据库查询中,默认是不区分大小写的。
-----------------
那如何让查询结果区分大小写呢?
在MySQL中的方法:
1)select * from user where name like "A\%B%" collate utf8_bin;
或者
select * from user where name collate utf8_bin like "A\%B%" ;
collate utf8_bin放在like前后都可以。
2)select * from user where name collate utf8_bin like "A$%B%" escape "$";
-----------------------------
注:方法2中的collate utf8_bin不能放在escape "$"的后边。
utf8_bin表示建表时使用的字符集。
在MS SQL2005中的方法:
1)select * from user where name collate Chinese_PRC_CS_AS like 'A$%B%' escape '$';
或者
select * from user where name like 'A$%B%' escape '$' collate Chinese_PRC_CS_AS;
collate Chinese_PRC_CS_AS放在like前后都可以。
2)select * from user where name collate Chinese_PRC_CS_AS like 'A[%]B%';
或者
select * from user where name like 'A[%]B%' collate Chinese_PRC_CS_AS;
Chinese_PRC_CS_AS是MS SQL2005中的排序规则。
在MS SQL2005中我们可以这样来查询排序规则:
select * from ::fn_helpcollations();
END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
相关文章推荐
- MySql 申明变量以及赋值
- SQL 语句性能查看
- MySQL的if,case语句使用总结
- MySQL中常用字符串函数
- MySql字符转义
- Access与SQL中的IsNull(),IS NULL的区别
- ubuntu下导入导出.sql
- MySQL查看连接数
- plsql
- mongodb 字段验证规则 3.2新功能
- centos中lnmp下开启pgo_mysql扩展
- 使用nodejs,express,mysql,Bootstrap开发采购招标网站(三)Bootstrap-table实现Ajax删除数据
- 测试必备技能系列1 :通过mysql命令进行脚本数据导入
- SQL Server Cast and Convert
- MySQL驱动阅读------Connection连接的建立,基于JDBC-----5.1.26
- MySQL死锁原因分析
- 数据库备份,及清理备份计划
- 数据库水平拆分和垂直拆分区别(以mysql为例)
- Spark Sql性能测试及调优
- MySQL性能优化的最佳经验