我有sql查询:
select * from table where id in (1,2)
1,2 是我动态添加的参数。但是如果我有空集怎么办:
select * from table where id in ()
那么这个查询调用异常:
ERROR at line 1:
ORA-00936: missing expression
我应该如何用空集创建sql
我有sql查询:
select * from table where id in (1,2)
1,2 是我动态添加的参数。但是如果我有空集怎么办:
select * from table where id in ()
那么这个查询调用异常:
ERROR at line 1:
ORA-00936: missing expression
我应该如何用空集创建sql
您始终可以添加null
到您的集合中,因此当实际集合为空时,您不会收到语法错误:
select * from table where id in (null,1,2)
对比
select * from table where id in (null)
您的生成器也会更简单,因为您可以,
在添加的每个项目前打印 a,而无需检查它是否是第一个项目。
当然,由于您正在生成 SQL,因此针对SQL 注入的标准预防措施适用:不要让用户在您生成的 SQL 附近的任何地方输入。
试试这个
select * from table where id in (null)