2

我有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

4

2 回答 2

4

您始终可以添加null到您的集合中,因此当实际集合为空时,您不会收到语法错误:

select * from table where id in (null,1,2)

对比

select * from table where id in (null)

您的生成器也会更简单,因为您可以,在添加的每个项目前打印 a,而无需检查它是否是第一个项目。

当然,由于您正在生成 SQL,因此针对SQL 注入的标准预防措施适用:不要让用户在您生成的 SQL 附近的任何地方输入。

于 2013-03-29T11:57:10.440 回答
0

试试这个

 select * from table where id in (null)
于 2013-03-29T11:57:43.067 回答