问题描述
- mybatis like 模糊匹配的格式是什么样的
-
第一种 <if test="deviceName != null and deviceName != ''" > AND DEVICE_NAME LIKE '%${deviceName}%' </if> 第二种 AND DEVICE_NAME LIKE #{deviceName} 第一种之前试过是可以模糊匹配的,后来又不好用了,什么情况 还有说法是直接写like mybatis会自动加上%% 求正解
解决方案
第一种写法没错啊,你说的不好用的情况是什么样的呢?这个进入模糊匹配是有if条件的,符合该条件时才会有模糊查询的。
解决方案二:
第一种写法本身无问题。你说的不好用肯定是你改了代码 里deviceName 参数值 为'%deviceName的值%',因为你传入的参数里已经有了'%%',所有第二种解析#{deviceName} 就相当于AND DEVICE_NAME LIKE ''%deviceName的值%。用上面那种写法deviceName的值里不能有'%',你要理解传的到底是什么,为什么能模糊查询。
解决方案三:
and DEVICE_NAME like '%${deviceName}%'
and DEVICE_NAME like concat('%', #{deviceName}, '%')
时间: 2024-10-22 21:55:13