问答详情
源自:4-2 分页查询

like 如何不区分大小写

如何实现 select * from sys_user where 1=1 and lower("user_name") liker lower("LiYANG")

提问者:孤舟烟雨 2020-02-08 02:11

个回答

  • 老猿
    2020-02-08 11:54:37

    有点不太明白,你这个sql语句用原生的mybatis就可以实现,关键字你写错,是like,不是liker。还有like你模糊查询不用通配符吗?不用通配符那是精确匹配啊。where 后面的1=1不用写,原生的<where>标签就可以解决这个问题。

         如果用MP的条件构造器实现,大概是这样,我没加那个1=1,应为没有必要:

    String param = "LiYANG";
    QueryWrapper<User> query = Wrappers.<User>query();
    //参数转小写,直接用java的String中的toLowerCase()方法即可,不是非得用数据库函数
    query.apply("lower('user_name') like {0}", param.toLowerCase());
    List<User> list = memberMapper.selectList(query);