OracleMysql-动态创建sql语句

2次阅读

共计 398 个字符,预计需要花费 1 分钟才能阅读完成。

MYSQL:

@Query(value = "select * from project_demand where project_id=?1 and if(?2!='',demand_id in (select demand_id from demand_user where user_id=?2),1=1)",nativeQuery = true)

   if(?2!='',demand_id in (select demand_id from demand_user where user_id=?2),1=1),就是生成动态 SQL 的方法,利用 MYSQL 的 if 函数和我们传递的参数去进行判断,然后获取 SQL 语句

Oracle:

DECODE(VALUE,IF1,THEN1,IF2,THEN2,IF2,THEN2,..,ELSE)  

表示如果 value 等于 if1 时,DECODE 函数的结果返回 then1,..., 如果不等于任何一个 if 值,则返回 else。

正文完
 0