工作笔记(十一)

我们后端使用select * from table where name = xxx来判断取名是否重复。
这里有一个问题:
因为使用mysql 的utf8_genera_ci排序规则,这是一个不区分大小写的规则,这里实际判断会有误差。
具体来说,utf8_genera_ci不区分以下情况的字符串:

  • 字母的大小写:在比较字符串时,它会将大写字母与相应的小写字母视为相等。例如,"A" 和 "a" 在比较时被视为相等。

  • 带重音符号的字符:它会将带有重音符号(如 á、é、ï 等)的字符与没有重音符号(如 a、e、i)的字符视为相等。例如,"á" 和 "a" 在比较时被视为相等。

  • 字符编码的差异:utf8mb4_general_ci 会忽略字符编码差异,将它们视为相等。例如,不同的 Unicode 编码序列表示同一字符时,它们会被视为相等。

举个例子:

- AvA Rosa
- Avá Rosa
- Ava Rosa

都可以用=判断为相等

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容