在 Mysql 中有一个 null 安全的比较运算符:<=>。在创建这样的准备好的语句时,我在我的 Java 程序中使用它:
String routerAddress = getSomeValue();
String sql = "SELECT * FROM ROUTERS WHERE ROUTER_ADDRESS <=> ? ";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, routerAddress);
现在我想切换到 H2 数据库。如何在纯 SQL 中编写 <=> 运算符(例如使用 IS NULL 和 IS NOT NULL)?我想只使用一次stmt.setString 操作。列名可以多写几遍。
相关问题是Get null == null in SQL。但是那个答案需要将搜索值写入2次(即:我的PreparedStatement中的2个问号)!?
参考: http ://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_equal-to