简单写法(推荐):
推荐理由: 会使用索引,执行 计划与where user_name = 'XXX' 这种写法一致
@Query(
"select * from user "+
"WHERE (:userName is null or :userName = '' or user_name = 'XXX' )"+
)
Mysql if条件写法(不走索引):
@Query(
"select * from user "+
"WHERE IF(:userName is not null or :userName != '',user_name = 'XXX',1=1)"+
)
PostgreSQL case条件写法 (不走索引):
@Query(
"select * from user "+
"WHERE case when (:userName is not null or :userName != '') then user_name like 'XXX%' else 1=1 end "
)