繁体   English   中英

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

[英]A WHERE clause that always selects all records in a table

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

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

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

我通常使用1 = 1

(where = "WHERE 1 = 1 " + parameter)

在这种情况下,参数应以“AND”标记开头。

您可以将参数初始化为TRUE1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM