哎,说起来我之前在一个互联网公司做技术支持的时候,真是遇到不少坑。
记得那会儿,2 01 5 年,我们公司推出了一款新产品,那叫一个火爆啊。
但是,就在上线的那天,系统直接崩溃了。
当时我负责处理用户反馈,那可真是头都大了。

那时候,我们接到的反馈数量简直爆表,一天就有上万个。
我就跟同事一起,从早到晚地在电脑前盯着那些问题,一个一个地解决。
那时候的滋味,就像是火锅里的辣椒,又辣又烫,但还得忍着。

有一次,一个用户反馈说,他提交的订单信息不见了。
我一看,发现是数据库出了问题,数据全丢失了。
当时我心想,这可怎么办呢?后来,我们紧急启动了备份,花了整整一天一夜才恢复数据。

还有一次,一个用户在APP里充值,结果钱没到账。
我赶紧查了后台,发现是因为支付接口出了bug。
那时候,我一边安抚用户,一边赶紧找开发人员修复bug。

现在回想起来,那时候的日子虽然辛苦,但也让我学到了很多。
就像那个场景,虽然坑多,但只要用心去填,总能找到解决问题的方法。

MySQL是否区分大小写?

上周,我那个朋友在做MySQL数据库开发时遇到了大小写敏感性的问题。
他发现数据库名、表名、列名和关键字的大小写对查询结果有影响。
我给他解释了以下几点:
1 . 数据库名的大小写敏感性取决于操作系统。
在Windows系统上,数据库名不区分大小写;而在类Unix系统上,数据库名是区分大小写的。
通过设置参数lower_case_table_names,可以强制修改这一行为。

2 . 表名的大小写敏感性也受到文件系统的影响。
在创建表时,表名的大小写敏感性取决于文件系统。
如果lower_case_table_names设置为1 ,则查询时表名不区分大小写。

3 . 列名和关键字默认不区分大小写,但在进行字符串比较时,如WHERE子句中的字符串比较,默认是区分大小写的。
可以通过COLLATE指定不敏感规则。

4 . 系统变量不区分大小写,但字符串值比较默认是区分大小写的。

他听了我的解释后,决定在命名时保持一致性,并在跨平台开发时显式设置lower_case_table_names。
他还明确指定了字符串比较时的COLLATE,以避免潜在的问题。

至于代码示例,他测试了表名敏感性和字符串敏感性,发现确实可以通过设置参数来控制大小写敏感性。
他现在对MySQL的大小写敏感性有了更深入的理解,应该不会再犯类似的错误了。

对了,他还提到,如果在查询时遇到大小写敏感性的问题,可以通过修改数据库的字符集和排序规则来解决这个问题。
我觉得这个方法也不错,可以作为一个备选方案。
你看着办吧。

mysql查询不区分大小写解决方案(两种)

上周试过这个。

2 02 3 年,我那个朋友用COLLATE。

比如这样。

SELECT FROM table_name WHERE column_name COLLATE utf8 _general_ci = 'value'
他试了, Works.
不需要改配置。

重启服务很麻烦。

他喜欢这个方法。

灵活。

就是每次都要写COLLATE。

算了。