如果一个表内,存在两条数据,name字段,分别是tes_xxx和test_xxxxxx,如果需要用模糊查询查询出具体的一条数据。这个时候应该注意不要直接使用select * from table where name like concat('tes_', %),因为这个时候连test_xxxxxx也会查询出来。
解决方案:
加一个 \ 转义一下就好 select * from table where name like concat('tes\_', %),这样就只会查询出tes_xxx这条数据
如果使用mybatis,select * from table where name like concat('{name}',%)
可以在Java内拼接一下 name + "\\_",注意:在Java内 \ 需要转义