【转】MySQL大小写敏感的解决方案

本文介绍MySQL中表名及字段值大小写敏感性的设置方法。包括调整lower_case_table_names参数控制表名大小写敏感性,以及通过binary标记或设置collate规则实现字段值大小写敏感。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【时间】2022.01.13

【题目】【转】MySQL大小写敏感的解决方案

转载 MySQL大小写敏感的解决方案,主要介绍MySQL大小写敏感的设置方法,包括表名大小写敏感设置和匹配字段值大小写敏感设置两部分。

一、表名大小写敏感设置

①设置lower_case_table_names参数进行对表名称或数据库名称大小写敏感的控制。

②Unix下默认为0,也就是大小写敏感的;Windows下默认为1,不敏感;macOS默认为2,存储区分大小写,但是在查询时会转换为小写。

③对于在大小写不敏感的系统(Windows和macOS)不能将该字段设置为0。

二、匹配字段值大小写设置

默认匹配字段值大小是不敏感的

①linux默认情况下,对数据库名和表名的大小写是敏感的,因为linux系统本身对大小写就敏感。

 ②字段内容大小写不敏感。

 ③列名大小写不敏感。

那如何设置匹配字段值大小敏感呢?

①创建表时,将字段标记为binary,二进制大小写是敏感的。

②在查询条件的字段前加binary,但是不建议这么做,因为会使字段索引失效。

③建表时设置校对规则(collate)。

collate规则:

         *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写。
         *_ci: case insensitive collation,不区分大小写 。

④如果建表时校对规则未用*_bin,则可直接修改字段的属性。

alter table test3 modify name varchar(20) collate utf8_bin;


 

MySQL数据库大小写敏感性可以根据配置进行设置。默认情况下,MySQL在Windows操作系统上是不区分大小写的,而在Unix和macOS上是区分大小写的。这是因为在Windows中,文件系统默认是大小写敏感的,而在Unix和macOS中,文件系统默认是大小写敏感的。因此,MySQL大小写敏感性与操作系统和配置有关。 如果想要将已建立的数据库和表从大小写敏感换为不敏感,可以按照以下步骤进行: 1. 使用mysqldump命令将数据库数据导出。 2. 在my.cnf配置文件中将lower_case_table_names参数设置为1,并重启MySQL数据库。 3. 使用导出的数据将数据库数据导入到MySQL数据库中。 需要注意的是,对于大小写敏感的系统(如Windows和macOS),不能将lower_case_table_names参数设置为0。此外,在Linux默认情况下,数据库名和表名是大小写敏感的,而字段内容和列名是大小写敏感的。如果需要设置匹配字段值大小写敏感,可以使用binary标记或设置校对规则(collate)来实现。 总结起来,MySQL数据库大小写敏感性可以通过配置文件和设置校对规则来进行控制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MySQL| MySQL大小写敏感问题](https://blog.youkuaiyun.com/u011479200/article/details/89002141)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【MySQL大小写敏感解决方案](https://blog.youkuaiyun.com/C_chuxin/article/details/122471582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值