今天忽然接到客服要對如今系統要增長一塊查詢功能的需求,原來信心滿滿的跟她說稍等幾分鐘就好,但那結果是沒有預想到的,等了老半天還沒弄好,真是被ibatis玩轉了,嗚嗚…… sql
需求以下: 給出一個號碼,能夠直接查出它是否在網,或是直接號碼+(在網/退訂)組合查詢。 後端
實現效果:第一種查詢OK沒有問題,但第二種查詢就出問題了。在網/退訂我用的是一個下拉菜單控件作爲輸入,後端把它和手機號碼寫進一個map數組傳入到ibatis動態拼湊中去,結果問題就出現了,知足後面那個(在網/退訂)條件的SQL語句死活不出來,檢查了好幾遍代碼也沒發現有問題呀,鬱悶.......... 數組
ibatis xml代碼以下: 調試
<dynamic prepend="WHERE"> <isNotEmpty property="USER_MOBILE"> user_mobile = #USER_MOBILE# </isNotEmpty> <isNotEmpty prepend=" AND " property="USER_TYPE"> <isEqual compareValue="2"> ( pro_klys = 'Y' OR pro_yybd = 'Y' OR pro_kxye = 'Y' ) </isEqual> <isEqual compareValue="3"> ( pro_yybd = 'N' AND pro_kxye = 'N' AND pro_klys = 'N' ) </isEqual> </isNotEmpty> </dynamic>
調試窗口輸出狀況是: code
SELECT * FROM user_info WHERE user_mobile = ?
後面的當user_type = 2或3條件的SQL條件就沒有拼湊了,這是怎麼回事呢? xml
有人誰遇到過這樣的問題呢?求指教,謝謝。 class