我正在创建一个函数,该函数生成一个SQL查询,并通过作为参数给出的表达式(它将作为'WHERE'子句传递)过滤结果。如果省略参数,则返回所有结果。WHERE子句始终选择表中的所有记录
为了做到这一点,我可以测试一个空参数,并且只有在给出参数时才生成where子句(where = (parameter != null) ? "" : "WHERE " + parameter
)。然而,我在想有没有一种表达方式,我可以默认为将始终返回所有结果。这样我就不需要测试是否包含WHERE
关键字(where = "WHERE " + parameter
)。
我故意没有提到逃避参数,以避免注入。在我的解决方案中,我不会忘记这一点,我保证! :)
你在用什么语言?或者您是否使用专有SQL语言(例如T-SQL)来生成查询?请添加标签 – PinnyM 2012-02-24 14:51:52
类似:http://stackoverflow.com/a/8149183/27535 – gbn 2012-02-24 14:54:35
它是一种专有的SQL语言,特定于我正在使用的应用程序。很可能没有办法做到这一点,但我认为我会找出以此为出发点的“标准”方式。 – 2012-02-24 15:21:23