我正在寻找创建一个生成 SQL 查询的函数,通过作为参数给出的表达式过滤结果(它将作为“WHERE”子句传递)。如果省略该参数,则返回所有结果。
为了做到这一点,我可以测试一个空参数,并且只在给定参数的情况下构建 where 子句( where = (parameter != null) ? "" : "WHERE " + parameter
)。但是,我在想是否有一个我可以默认使用的表达式将始终返回所有结果。这样我就不需要测试是否包含 WHERE
关键字(where = "WHERE " + parameter
)。
我故意没有提到转义参数以避免注入(inject)。我保证,我不会在我的解决方案中忘记这一点! :)
最佳答案
我一般用1 = 1
为了那个原因。
关于sql - 始终选择表中所有记录的 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9432690/