MySQL查询时区分大小写的方法

本文介绍如何在MySQL中实现大小写敏感的查询操作。通过使用BINARY关键字或定义字段为BINARY类型,可以改变默认的大小写不敏感行为。这对于需要精确匹配的应用场景非常有用。

mysql查询默认是不区分大小写的 如:

  1. select  * from  table_name where  a like  'a%'   
  2. select  * from  table_name where  a like  'A%'   

效果是一样的。
要让mysql查询区分大小写,可以:
  1. select  * from  table_name where  binary  a like  'a%'   
  2. select  * from  table_name where  binary  a like  'A%'   


也可以在建表时,加以标识
  1. create  table  table_name(  
  2.      a varchar (20) binary    

MySQL 中,查询是否区分大小写取决于多种因素。默认情况下,MySQL 查询是不区分大小写的。例如,执行 `SELECT * FROM mytable WHERE name = 'John'`,它将匹配所有大小写变体的 `John`,如 `john`、`JOHN` 或 `jOhn` [^1]。 下面几种情况可以说明查询大小写规则: - **SQL 关键字**:SQL 关键字(如 `SELECT`、`FROM`、`WHERE` 等)不区分大小写。例如,`SELECT VERSION(), CURRENT_DATE;`、`SeLect version(), current_date;` 和 `seleCt vErSiOn(), current_DATE;` 这些查询是等效的 [^3]。 - **表名和数据库名**:表名和数据库名是否区分大小写取决于操作系统和 MySQL 的配置。在 Windows 上,默认不区分大小写;在 Linux 上,默认区分大小写。 - **列值**:列值的查询默认不区分大小写,但可以通过一些方法使其区分大小写: - **使用 `BINARY` 关键字**:在查询语句中使用 `BINARY` 关键字可以强制区分大小写。例如,`SELECT * FROM user WHERE BINARY name = 'A'` [^2]。 - **修改表字段**:可以通过 `ALTER TABLE user MODIFY COLUMN name VARCHAR(100) BINARY;` 修改单独某字段,使其区分大小写 [^2]。 - **修改表的排序规则**:将表的排序规则修改为 `utf8_bin` 或 `utf8mb4_bin`,如 `ALTER TABLE user CONVERT TO CHARACTER SET utf8_bin` [^2]。 ```sql -- 使用 BINARY 关键字示例 SELECT * FROM user WHERE BINARY name = 'A'; -- 修改表字段示例 ALTER TABLE user MODIFY COLUMN name VARCHAR(100) BINARY; -- 修改表的排序规则示例 ALTER TABLE user CONVERT TO CHARACTER SET utf8_bin; ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值