【发布时间】:2010-03-21 09:04:15
【问题描述】:
有谁知道为什么以下查询在 Derby 中失败?
delete from MyTable
where
((null = null) or (col1 = null)) OR
((102 = null) or (col2 = 102)))
我收到以下错误:
Error: Syntax error: Encountered "null" at line 3, column 3.
SQLState: 42X01
ErrorCode: -1
该 sql 是在基于我已写入 iBatis ORM 层配置的 SQL 的 java 程序中生成的。准备好的语句如下:
delete from MyTable
where
((? = null) or (col1 = ?)) OR
((? = null) or (col2 = ?)))
如您所见,我想说的是,如果 参数 不为空,则根据参数测试列值
【问题讨论】:
-
感谢您的回答。我应该添加 sql 是由 iBatis orm 层在 java 程序中生成的。准备好的语句如下 delete from MyTable where ((? = null) or (col1 = ?)) OR ((? = null) or (col2 = ?))) 你可以看到我想说的是如果参数不为空,则根据参数测试列值。我已经编辑了原始问题以澄清这一点(希望)。