生产环境上 mysql 查询区分大小写,但是要求列表查询的时候屏蔽大小写,开发应该怎么处理

2019-09-02 18:41:47 +08:00
 Renco

有点蒙

3194 次点击
所在节点    Java
5 条回复
LeeSeoung
2019-09-02 19:46:16 +08:00
两边都转 lower 不就完事了么。。
1424659514
2019-09-02 20:45:49 +08:00
where 子句等号左边跟等号右边都做一个大小写转换, 但这样的问题是无法走到索引
beastk
2019-09-02 21:31:51 +08:00
要不整两个数据库?
taogen
2019-09-02 23:37:11 +08:00
设置生产环境的 MySQL 不区分大小写。要么,把程序中字段的大小写都改成和生产环境的一样。
Aresxue
2019-09-03 09:18:18 +08:00
1.最简单的就是改 sql, 可以区分或者不区分大小写,比如 mybatis 中的 if 标签;
2.把生产环境设置为不区分大小写,但这样对于需要区分大小写的场景不太友好,需要对返回的结果集进行筛选;
3.对检索字段的字符进行全排列, 每个都去查一次, 这种方式唯一的好处就是不动数据库, 但是贻害无穷。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597293

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX