最近项目测试老师提了个查询输入框应该要支持大小写都能查,因为其他同事做过类似的查询,对比了他的代码发现咱俩没差,但是我的却是不支持。苦思许久觉得应该不是代码层面了,而是数据库层面的问题?
mysql本身语句是支持大小写的,如果你发现你的查询不生效,那么不妨去检查一下该字段数据库的排序规则。实操下来是我们数据库默认utf8mb4_bin是不支持大小写的,utf8mb4_0900_ai_ci字符集是支持大小写的。(字符集:utf8mb4)
作为一个菜鸟,于是便去学习了一下数据库的排序规则知识。
-
排序规则(Collation):
- 排序规则定义了比较字符串时使用的规则。
- 比较和排序规则根据不同的语言和地区进行分类,并具体到某个特定的字符集。
- 排序规则决定了如何比较字符串的顺序,包括大小写敏感性、重音符号处理等。
- 有一些常用的命名规则。如_ci结尾表示大小写不敏感(caseinsensitive),_cs表示大小写敏感(case sensitive),_bin表示二进制的比较(binary)