Mysql已支持自动进行int与bigint类型的模糊查询
原本,想要在Mysql中进行int与bigint类型的模糊查询,必须通过Mysql的cast函数将其转为字符串后再操作,如博客1所述
但经本人测试,Mysql5.7.25就已经支持自动进行int与bigint类型的模糊查询了,下述Sql代码可直接通过Sql测试:
SELECT id,category_id,status FROM dish WHERE (category_id LIKE "%1397844303408574465%" AND status LIKE "%1%")
这意味着什么不言而喻,以后写条件查询时,大多数场景可以直接用模糊查询替换所有包含条件,将极大的简化代码需要做的if-else判断
例如,一个多条件(未知数量与类型)查询的业务,我们仅需要一行模糊查询代码即可完成:
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
// 入参为:Map<String, Object> params
//1. 获取模糊查询字段
Object[] values = params.values().toArray();
Object[] keys = params.keySet().toArray();
QueryWrapper<Entity> entityQueryWrapper = new QueryWrapper<>();
for (int i = 0; i< values.length; i++){
entityQueryWrapper.like(StrUtil.toUnderlineCase(key), (String) values[i]);
//模糊查询只支持字符串,这里可以直接写死强转类型(但该查询适合任何String或Number类型)
}