如何处理(可能)预准备语句中的空值?
2022-08-31 21:03:10
该语句是
SELECT * FROM tableA WHERE x = ?
参数通过 java.sql.PreparedStatement 'stmt' 插入
stmt.setString(1, y); // y may be null
如果 为 null,则该语句在每种情况下都不返回任何行,因为 始终为 false(应为 )。一个解决方案是y
x = null
x IS NULL
SELECT * FROM tableA WHERE x = ? OR (x IS NULL AND ? IS NULL)
但是,我必须设置相同的参数两次。有没有更好的解决方案?
谢谢!