@Query(value = "select * from eam_parts_list where is_deleted=:no and (id=:id or ids like %:id%",nativeQuery = true) List<PartsList> findAllByDeletedOrIdsLike(@Param("no") Boolean no, @Param("id") String id);这样写总是只能查到符合or后面的条件的数据。
但在mysql中使用:select * from eam_parts_list where is_deleted=0 and (id='402882bc7705550701770559df8f0002' or ids like '%402882bc7705550701770559df8f0002%' )却能够查到所有符合条件的数据。
百思不得其解。
然后抱着试一试的心态,换了一种写法:
@Query(value = "select * from eam_parts_list where is_deleted=:no and (id=:id or ids like CONCAT('%',:id,'%') )",nativeQuery = true) List<PartsList> findAllByDeletedOrIdsLike(@Param("no") Boolean no, @Param("id") String id);
这样写就可以了。
jpa查询语句当使用or 加like时失效
最新推荐文章于 2024-01-08 09:06:55 发布