我正在寻找创建一个生成SQL查询的函数,通过作为参数给出的表达式过滤结果(它将作为'WHERE'子句传递)。如果省略该参数,则返回所有结果。
为了做到这一点,我可以测试一个null参数,只有在给出参数(where = (parameter != null) ? "" : "WHERE " + parameter
)时才构建where子句。但是,我在想是否有一个我可以默认的表达式,它将始终返回所有结果。这样我就不需要测试是否要包含WHERE
关键字(where = "WHERE " + parameter
)。
我故意没有提到逃避参数以避免注入。在我的解决方案中,我不会忘记这一点,我保证! :)
答案 0 :(得分:9)
我通常会使用1 = 1
。
答案 1 :(得分:4)
(where = "WHERE 1 = 1 " + parameter)
在这种情况下,参数应以“AND”标记开头。
答案 2 :(得分:1)
您可以将参数初始化为TRUE
或1
。