Ibatis動態查詢 and和or

2021-08-16 10:09:29 字數 571 閱讀 3960

我們在做sql語句查詢時會遇到如下情況

select id,name,***,year from  tb_people where ***="girl" and id="110" or name="marry"

我們知道,該語句查詢的結果是滿足以下任意乙個條件的資料:

1)id="110" 並且 ***="girl";

2)name="marry"

顯然,and和or的查詢產生了冗餘。如果我們想要的結果是,滿足***="girl" 並且滿足 (id="110" or name="marry"),該如何書寫sql語句?在ibatis中,我們可以使用dynamic動態語句。舉例如下:

***=#***#

id=#id#

name=#name#

如果只是單純的用sql語句該如何實現?利用and和or優先順序可以這樣書寫:

select id,name,***,year from  tb_people where ***='girl' and id='110' or ***='girl' and name='marry'

ibatis 動態查詢

最近專案需要,做了乙個動態查詢。把查詢結果返回到頁面上顯示。要查詢的字段和表名都是動態的,是在後台拼出來的。可是在ibatis中執行的時候總報 列名無效 在sql plus中執行則正常。百思不得其解。後來通過查資料,解決如下 select t.creator,t.create dt,decode o...

ibatis 動態查詢

在複雜查詢過程中,我們常常需要根據使用者的選擇決定查詢條件,這裡發生變化的 並不只是sql 中的引數,包括select 語句中所包括的字段和限定條件,都可能發生變 化。典型情況,如在乙個複雜的組合查詢頁面,我們必須根據使用者的選擇和輸入決定查 詢的條件組合。乙個典型的頁面如下 對於這個組合查詢頁面,...

ibatis動態字段查詢

想要動態的獲取所需要的字段,想來想去沒有想到好的方法,只有下面乙個不成熟的想法,提筆記之,以備改進。極其簡單,一看即明白。有一點要注意的就是remapresults true 一定要設定 快取是把雙刃劍 entity.getfeild map put partner id partner id en...