gpt4 book ai didi

java - 如何处理 PreparedStatement 中的(可能)空值?

转载 作者:IT老高 更新时间:2023-10-28 20:36:34 28 4
gpt4 key购买 nike

声明是

SELECT * FROM tableA WHERE x = ?

并且参数是通过java.sql.PreparedStatement 'stmt'插入的

stmt.setString(1, y); // y may be null

如果 y 为 null,则该语句在每种情况下都不返回任何行,因为 x = null 始终为 false(应为 x IS NULL )。一种解决方案是

SELECT * FROM tableA WHERE x = ? OR (x IS NULL AND ? IS NULL)

但是我必须两次设置相同的参数。有没有更好的解决方案?

谢谢!

最佳答案

我一直按照您在问题中显示的方式进行操作。两次设置相同的参数不是什么大问题,是吗?

SELECT * FROM tableA WHERE x = ? OR (x IS NULL AND ? IS NULL);

关于java - 如何处理 PreparedStatement 中的(可能)空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215135/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com