當爲我的sql動態生成WHERE
子句時,我喜歡將WHERE '1' = '1'
硬編碼到sql中,因此我不必跟蹤是否要爲每個子句添加AND
。這在許多地方都有很好的記錄,例如stackoverflow question。更新相當於WHERE'1'='1'
是否存在一個用於動態生成UPDATE
語句的SET
子句的等效模式?我寧願不跟蹤是否需要預先輸入逗號。如果沒有任何通用的解決方案,這將用於通過jdbc與oracle數據庫進行交互。
編輯 對於我的特殊用例,我需要動態更改正在設置的列。因此,任何需要查詢包含所有列的解決方案都是不可行的。我們有一張20列以上的表格,但在任何時候只有3或4個表格會發生變化。我們運行了一些負載測試,發現實現性能目標的唯一方法就是發送需要更新的數據。現在我只是想寫出漂亮的代碼來實現這一點。爲了避免跟蹤列數爲附加逗號的目的
簡短的回答是沒有。就我個人而言,我討厭「1 = 1」的東西,並且傾向於編寫智能邏輯,根據需要連接多少個表達式來知道是否預先加上','或者'和'。您可能想要觀察系統必須處理的解析負載 - 確保始終每次都使用相同順序生成SET子句,以最小化此問題。 –