java - 提供值的 SQL Where 子句

标签 java sql

我正在尝试在 Java 中使用 SQL Select 语句进行查询。我目前有以下内容:

ResultSet rs = stmt.executeQuery("SELECT *" +
                                             " FROM " + table + 
                                             " WHERE " + selection + 
                                             " VALUES " + selectionArgs);

其中“selection”是一个字符串,“selectionArgs”是一个字符串数组。

 String selection = "documentFK=?";
 String[] selectionArgs = { ... };

是否可以使用 VALUES 命令来替换 ,就像使用 INSERT 命令一样?不管怎样,正确的语法是什么?

感谢您的帮助。

最佳答案

我相信您正在寻找的是 IN 语句。您的查询应如下所示:

SELECT *
FROM table
WHERE documentFK IN ('doc1', 'doc2', 'doc3')
    AND userFK IN ('user1', 'user2', 'user3')

这(显然)会让你的代码变得更加难看。您必须确保第一个子句使用 WHERE 关键字,而其他所有子句都使用 AND 关键字。此外,每个列表都必须以逗号分隔。

关于java - 提供值的 SQL Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8794360/

相关文章:

SQL使用一个表中的列值作为另一个表的列来获取数据

java - 有没有办法根据电话号码从电话中获取 WAN IP 地址?

java - 刷新 SparkJava 服务的静态文件

java - 修复 sdkmanager java.lang.NoClassDefFoundError 批处理文件

mysql - 在 MySQL 中创建仅在最右边(排序)列不同的多列索引

sql - 如何在 MS Access 查询中直接使用系统用户名?

java - 如何在 Java 中替换 ArrayList 元素的现有值

java - DAO 模式中的异常与返回码

mysql - 如何通过连接到索引较差的表来改进查询?

MySQL 选择指定日期在开始日期和结束日期之间的行