我正在創建一個函數,該函數生成一個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