V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Renco
V2EX  ›  Java

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

  •  1
     
  •   Renco · 2019-09-02 18:41:47 +08:00 · 3266 次点击
    这是一个创建于 1915 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有点蒙

    5 条回复    2019-09-03 09:18:18 +08:00
    LeeSeoung
        1
    LeeSeoung  
       2019-09-02 19:46:16 +08:00
    两边都转 lower 不就完事了么。。
    1424659514
        2
    1424659514  
       2019-09-02 20:45:49 +08:00
    where 子句等号左边跟等号右边都做一个大小写转换, 但这样的问题是无法走到索引
    beastk
        3
    beastk  
       2019-09-02 21:31:51 +08:00 via iPhone
    要不整两个数据库?
    taogen
        4
    taogen  
       2019-09-02 23:37:11 +08:00 via Android
    设置生产环境的 MySQL 不区分大小写。要么,把程序中字段的大小写都改成和生产环境的一样。
    Aresxue
        5
    Aresxue  
       2019-09-03 09:18:18 +08:00
    1.最简单的就是改 sql, 可以区分或者不区分大小写,比如 mybatis 中的 if 标签;
    2.把生产环境设置为不区分大小写,但这样对于需要区分大小写的场景不太友好,需要对返回的结果集进行筛选;
    3.对检索字段的字符进行全排列, 每个都去查一次, 这种方式唯一的好处就是不动数据库, 但是贻害无穷。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:43 · PVG 05:43 · LAX 13:43 · JFK 16:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.