我正在嘗試編寫具有很多字段的高級搜索的邏輯。基於用戶輸入,我必須動態構建查詢。 oracle查詢也存在exists子句。需要幫助來構建查詢
目前我有一系列的開關箱幫助我形成查詢。但是這已經變得非常複雜,編輯查詢邏輯變得非常困難。
除了switch case之外,還有其他的方式來動態構建查詢。請讓我知道
我正在嘗試編寫具有很多字段的高級搜索的邏輯。基於用戶輸入,我必須動態構建查詢。 oracle查詢也存在exists子句。需要幫助來構建查詢
目前我有一系列的開關箱幫助我形成查詢。但是這已經變得非常複雜,編輯查詢邏輯變得非常困難。
除了switch case之外,還有其他的方式來動態構建查詢。請讓我知道
只是通用的建議,在where子句中添加1=1
使事情更容易。
這可能有幫助Why would someone use WHERE 1=1 AND <conditions> in a SQL clause?
PS:同時更新您的問題與特定的問題,否則很可能會被關閉。
存在EasyQuery()解決方案,但是 它是針對ASP.NET實現的,據我所知。 但是,他們有一個基於jQuery的客戶端庫,對您的情況可能是 有用。
好問題;) – 2013-04-09 13:39:07
您是否想過在生成一個由於您給它的參數和數據而執行「查詢構建」的類。例如,創建一個類,它有一個名爲addrestriction的方法,它會重新獲取where子句的信息,包括columm,operator和value,然後實現一個名爲toSQL的方法,該方法將SQL查詢生成爲String,供您使用它?你可以嘗試SQandal [這裏](http://code.google.com/p/sqandal/) – icrovett 2013-04-09 13:43:32