java - 带有可变参数的简单查询

标签 java sql jdbc prepared-statement

我有三个查询,我想将它们合并为一个查询,该查询可以接受可变长度的 WHERE 参数;我一辈子都不记得如何做到这一点。

PreparedStatement queryOne = connection.prepareStatement
("SELECT columnOne, columnTwo, columnThree FROM tableOne WHERE columnOne = ?;" );

PreparedStatement queryTwo = connection.prepareStatement
("SELECT columnOne, columnTwo, columnThree FROM tableOne WHERE columnTwo = ?;" );

PreparedStatement queryThree = connection.prepareStatement
("SELECT columnOne, columnTwo, columnThree FROM tableOne WHERE columnOne = ? AND columnTwo = ?;" );

最佳答案

所有三个查询都从同一个表中选择相同的列,因此可以在一个语句中轻松完成它们的并集:

SELECT columnOne, columnTwo, columnThree 
  FROM tableOne 
 WHERE columnOne = ?
    or columnTwo = ?
    or (columnOne = ? AND columnTwo = ?)

关于java - 带有可变参数的简单查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8620140/

相关文章:

sql - 我如何确定我的 table 的优先顺序?

jdbc - 使用 JDBC 连接到 Hadoop 中的命名队列

java - 将 DriverManager.getConnection 与 UCanAccess 一起使用时的内存消耗

java - ORA-12704 : character set mismatch when performing multi-row INSERT of nullable NVARCHAR's

java - 如何通过 Open Graph 标签 friend 使用 facebook api taggable_friends

java - 无效 key 异常 : invalid key format in Java using RSA Keys

sql - SQL中两个表之间调整 View 的正确方法是什么

sql - 对于有竞争力的在线门票销售,您会建议什么数据库解决方案

java - 我怎么知道谁调用了 System.gc()?

Java 字符串到 Python 字符串编码 "error"