select * from item i where 340101 like (i.region || '%')
这样查询有什么作用呢
like 是模糊查询关键字。
上面的查询,确定是正确的吗?
我在数据库中试了,没有查出数据,完整代码是这样的
if(region.length()<6){
jpql.append(" and i.region like '").append(region).append("%'");
}else{
jpql.append(" and "+region).append(" like (i.region || '%')");
}
您给看看什么意思
下面那句改成
jpql.append(" and "+region).append(" like concat("+i.region+",'%')");
like可以用下面这句
select * from table t where t.name like concat('%',param,'%')
我似乎没有见过在like的字句中使用“||”的哎。
select * from item i where 340101 like (i.region || '%')
这句话的意思是:查看item表中region字段是否是'340101'的前缀。既:region 如果是:'3', '34', '340', '3401', '34010', '340101' 则有效
总来讲就是前面的字符 符合后面的匹配规则就返回真。