sql - 始终选择表中所有记录的 WHERE 子句

标签 sql where-clause resultset

我正在寻找创建一个生成 SQL 查询的函数,通过作为参数给出的表达式过滤结果(它将作为“WHERE”子句传递)。如果省略该参数,则返回所有结果。

为了做到这一点,我可以测试一个空参数,并且只在给定参数的情况下构建 where 子句( where = (parameter != null) ? "" : "WHERE " + parameter )。但是,我在想是否有一个我可以默认使用的表达式将始终返回所有结果。这样我就不需要测试是否包含 WHERE关键字(where = "WHERE " + parameter)。

我故意没有提到转义参数以避免注入(inject)。我保证,我不会在我的解决方案中忘记这一点! :)

最佳答案

我一般用1 = 1为了那个原因。

关于sql - 始终选择表中所有记录的 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9432690/

相关文章:

JSON 的 Java 结果集按列输出

mysql - 无法解析 IntelliJ 中的符号结果集

MySQL有条件地创建表

mysql - 需要优化 SQL 查询 - 执行需要花费大量时间

php - 谈论并发 PHP 时的最佳方法

sql - 'having' 子句后的 'group by ' 错误

sql - Oracle中如何查看索引是否被使用

sql - 相同的值显示为三个值

mysql查询左连接和过滤

java - 使用executeQuery时出现NullPointerException