博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql单个字段查询时设置是否区分大小写
阅读量:2061 次
发布时间:2019-04-29

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

sql查询区分大小写

一般来说mysql我们建表是数据库字段设置默认是不区分大小写的,也是就是一般情况下查询是不区分大小写的。

select * from user where user_name='AA';select * from user where user_name='aa';

上面代码所查询出来的结果是一致的

这中情况下要怎么区分大小写呢;

网上一搜就会搜到以下两种方案:
1.可以将查询条件用binary()括起来。 比如:

select * from TableA where binary columnA ='aaa';# 或者select * from TableA where columnA COLLATE utf8mb4_bin ='aaa';
  1. 可以修改该字段的COLLATE 校对 为 binary 比如:
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;

第一种方案是修改下sql

第二种方案需要修改数据库

sql查询不区分大小写

CREATE TABLE `T_LISTING_SITELIST` (  `ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '数据库主键',  `CODE` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '站点编码'  PRIMARY KEY (`ID`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=78 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;

如果数据库设置为区分大小写,又想查询时不区分大小写,同样有两种方法

1.对查询条件使用设定的校对规则 。 比如:

COLLATE

select * from T_LISTING_SITELIST where CODE COLLATE utf8mb4_general_ci ='aa';
  1. 可以修改该字段的COLLATE 校对 为 utf8mb4_general_ci 比如:
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8mb4_general_ci DEFAULT NULL;

collate规则

*_bin: 表示的是binary case sensitive collation,二进制字符敏感校对,区分大小写

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

以上只是针对问题给出的一些方案,详细信息可查阅mysql的官方文档

https://dev.mysql.com/doc/refman/5.7/en/charset.html

转载地址:http://xzmlf.baihongyu.com/

你可能感兴趣的文章
第一个C#应用程序
查看>>
第一章C#简介
查看>>
NGWS runtime 技术基础
查看>>
Linux find 文件查询 用法示例
查看>>
Linux 查看文件大小
查看>>
mysql 命令
查看>>
MySQL执行外部sql脚本文件的命令
查看>>
解决MySql Error Code: 2006
查看>>
查看mysql数据库和表所占用空间
查看>>
Guava Collections使用介绍
查看>>
Ordering犀利的比较器
查看>>
spring+Mybatis+Ehcache整合
查看>>
google guava使用例子/示范(一)
查看>>
joda-time 时间API
查看>>
Joda Time API -2
查看>>
Spring使用Cache、整合Ehcache
查看>>
Chrome调试工具奇淫技
查看>>
30分钟快速掌握Bootstrap
查看>>
如何针对业务做DB优化
查看>>
程序猿都该知道的MySQL秘籍
查看>>