为了账号安全,请及时绑定邮箱和手机立即绑定

Mybatis的Select语句变量是大小写不敏感的吗?

Mybatis的Select语句变量是大小写不敏感的吗?

Helenr 2019-03-13 18:19:57
今天遇到一个狗血的问题使用springmvc+mybatis的时候如一个SELECT语句如此    <select id="list" parameterType="java.util.Map" resultMap="user">        SELECT        *        FROM        user        <trim prefix="where" prefixOverrides="AND">            <if test="username!=null">                username = #{username}            </if>                </trim>    </select>     数据库为Mysql假如我要搜索的username为wanglaoju那么我搜wanglaoju,WANGLAOJU,Wanglaoju都可以出现相同的结果。Mybatis的搜索是大小写不敏感的吗?如果不是,那么我这个可能是什么原因?
查看完整描述

5 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

这个和Mybatis关系不大,说白了他到最后也是用JDBC驱动传递数据,和你手写JDBC传的SQL没啥区别。

这个是看你的数据库设置的,mysql默认是字段大小写不敏感的,通过配置文件可以修改。


查看完整回答
反对 回复 2019-04-17
?
森栏

TA贡献1810条经验 获得超5个赞

例如,一般查询:

Sql代码 收藏代码
SELECT * FROM U WHERE name LIKE 'a%'; 
SELECT * FROM U WHERE name LIKE 'A%'; 
其结果是一样的,为了区分'A%'和'a%',可以这么做:

Sql代码 收藏代码
SELECT * FROM U WHERE binary name LIKE 'a%'; 
SELECT * FROM U WHERE binary name LIKE 'A%'; 
仅仅多了一个binary,就可以得到不同的结果!

当然,如果需要建表时强制区分大小写,可以这么写:

Sql代码 收藏代码
create table table_name(

name varchar (20) binary

); 
就这么简单!


查看完整回答
反对 回复 2019-04-17
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

mysql默认是不区分大小的


查看完整回答
反对 回复 2019-04-17
  • 0_DA米_0
    0_DA米_0
    linux环境是区分的, 需要在部署mysql的时候进行设置
?
智慧大石

TA贡献1946条经验 获得超3个赞

mysql大小写敏感和系统有关,推荐个库,log4jdbc,来打印下执行的sql,直接复制到数据库跑下看结果

<dependency>

    <groupId>com.googlecode.log4jdbc</groupId>

            <artifactId>log4jdbc</artifactId>

    <version>1.2</version>

</dependency>


查看完整回答
反对 回复 2019-04-17
  • 5 回答
  • 0 关注
  • 3699 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信