MySQL字段值如何区分大小写问题

 更新时间:2024年05月30日 09:21:06   作者:小果子^_^  
这篇文章主要介绍了MySQL字段值如何区分大小写问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MySQL字段值如何区分大小写

注意:设置的是字段值区分大小写

1. 查询时指定大小写敏感,加关键字‘BINARY’

(1)删表,建表,新增数据

drop table binary_test;
CREATE TABLE binary_test (
  `id` INT unsigned PRIMARY key NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into binary_test (name) values ('QWERTY');
insert into binary_test (name) values ('qwerty');

(2)测试数据

①查询小写字母

select * from binary_test where name ='qwerty';

②查询大写字母

select * from binary_test where binary name ='QWERTY';

2. 定义表结构时指定字段大小写敏感 关键字BINARY”指定guid字段大小写敏感

drop table binary_test;
CREATE TABLE binary_test (
  `id` INT unsigned PRIMARY key NOT NULL AUTO_INCREMENT,
  `name` varchar(255) BINARY  NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into binary_test (name) values ('QWERTY');
insert into binary_test (name) values ('qwerty');

注意 name字段使用binary修饰了。

select * from binary_test where name ='qwerty';

3. 修改排序规则(COLLATION)

show variables like ‘collation_database';

Collation以 “_ci"结尾的不区分大小写(ci——Case Ignore),以”_bin"或者"_cs"结尾的区分大小写

Collation改为 utf8_bin(大小写敏感的)

可以为库、表、列指定Collation。

优先级为 列>表>库

CREATE DATABASE sys_userCOLLATE utf8_bin;
ALTER TABLE sys_userDEFAULT CHARACTER SET=utf8 COLLATE=utf8_bin;
ALTER TABLE sys_user MODIFY COLUMN username varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
ALTER TABLE sys_user MODIFY COLUMN username VARCHAR(255) BINARY

MySql查询区分大小写

在mysql中,可以利用select查询语句配合binary关键字来区分大小写,select语句用于查询数据,binary关键字用于区分大小写,语法为“select * from 表名 WHERE binary 字段=字段值”。

select count(*) from ct_brand_info where binary brand_abbr = 'NA'

在SQL语句中,BINARY关键字用于进行二进制比较。当你使用BINARY关键字时,数据库会以二进制方式比较所有的字符串,包括大小写。

在你的示例中,SELECT COUNT(*) FROM ct_brand_info WHERE BINARY brand_abbr =

'NA’的目的是计算在ct_brand_info表中,brand_abbr列中等于’NA’的记录数。

使用BINARY的关键字在这里有两方面的影响

1.大小写敏感性:BINARY使比较区分大小写。这意味着它不仅会匹配完全等于’NA’的字符串,还会匹配等于’na’或’Na’等其他大小写组合的字符串。

2.二进制比较:BINARY将字符串转换为二进制格式进行比较。这使得比较更精确,因为它考虑了每个字符的二进制表示。

总结起来,BINARY关键字在你的SQL查询中的作用是使字符串比较区分大小写并使用二进制格式进行比较。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql数据库limit的四种用法小结

    mysql数据库limit的四种用法小结

    mysql数据库中limit子句可以被用于强制select语句返回指定的记录数,本文主要介绍了mysql数据库limit的四种用法小结,感兴趣的可以了解一下
    2023-10-10
  • Mysql使用insert插入多条记录 批量新增数据

    Mysql使用insert插入多条记录 批量新增数据

    这篇文章主要介绍了Mysql使用insert插入多条记录批量新增数据,需要的朋友可以参考下
    2017-08-08
  • MySQL修改innodb_data_file_path参数的一些注意事项

    MySQL修改innodb_data_file_path参数的一些注意事项

    这篇文章主要给大家介绍了关于MySQL修改innodb_data_file_path参数的一些注意事项,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • centos下mysql主从同步快速设置步骤分享

    centos下mysql主从同步快速设置步骤分享

    记录一个比较简便的mysql的主从同步设置步骤,方便日后使用。
    2012-06-06
  • mysql清除log-bin日志的方法

    mysql清除log-bin日志的方法

    这篇文章主要介绍了mysql清除log-bin日志的方法,同时介绍了log-bin日志的作用,需要的朋友可以参考下
    2014-06-06
  • mysql实现自增序列的示例代码

    mysql实现自增序列的示例代码

    这篇文章主要介绍了mysql实现自增序列的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • MySQL优化GROUP BY方案

    MySQL优化GROUP BY方案

    满足GROUP BY子句的最一般的方法是扫描整个表并创建一个新的临时表,表中每个组的所有行应为连续的,然后使用该临时表来找到组并应用累积函数(如果有)。在某些情况中,MySQL能够做得更好,即通过索引访问而不用创建临时表。
    2014-07-07
  • 一文搞懂MySQL持久化和回滚的原理

    一文搞懂MySQL持久化和回滚的原理

    本文主要介绍了MySQL持久化和回滚的原理,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • MySQL中的隐藏列的具体查看

    MySQL中的隐藏列的具体查看

    mysql中存在一些隐藏列,例如行标识、事务ID、回滚指针等,不知道大家是否和我一样好奇过,要怎样才能实际地看到这些隐藏列的值呢,感兴趣的可以了解一下
    2021-09-09
  • MySQL 原理与优化之Limit 查询优化

    MySQL 原理与优化之Limit 查询优化

    这篇文章主要介绍了MySQL 原理与优化之Limit 查询优化,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论