可以在SQL语句中加入 binary来区分大小写

Mysql默认查询是不分大小写的,可以在SQL语句中加入 binary来区分大小写;

BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写

例如 :

select
        *
    from `sys_user`
    where  binary  loginno = 'qqq'

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果需要在 MyBatis 逆向查询使用 `binary` 进行大小写区分,可以在 SQL 语句使用 `binary` 函数将列名或参数转换成二进制格式,从而实现大小写区分。 比如,假设有一个表 `user`,其有一个列 `username`,需要进行大小写区分的查询。可以使用以下 SQL 语句进行查询: ```sql SELECT * FROM user WHERE BINARY username = BINARY #{username} ``` 这里使用了两个 `BINARY` 函数将 `username` 和参数都转换成二进制格式,从而实现了大小写区分。 在 MyBatis Generator ,可以通过在 `columnOverride` 标签添加 `javaType` 属性指定该列对应的 Java 类型,并在该 Java 类型添加一个方法,将字符串转换成二进制格式。例如: ```xml <table tableName="user"> <columnOverride column="username" javaType="String"> <property name="typeHandler" value="com.example.BinaryStringTypeHandler"/> </columnOverride> </table> ``` 这里通过设置 `typeHandler` 属性指定了一个自定义的类型处理器 `BinaryStringTypeHandler`,该类型处理器的代码如下: ```java public class BinaryStringTypeHandler extends BaseTypeHandler<String> { @Override public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException { ps.setString(i, "BINARY " + parameter); } @Override public String getNullableResult(ResultSet rs, String columnName) throws SQLException { return rs.getString(columnName); } @Override public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return rs.getString(columnIndex); } @Override public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return cs.getString(columnIndex); } } ``` 这里重写了 `setNonNullParameter` 方法,在设置参数时将字符串添加上 `BINARY` 前缀,从而实现了大小写区分。需要注意的是,该方法的 `ps.setString(i, "BINARY " + parameter)` 语句可能要根据具体数据库的语法进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值