今天忽然接到客服要对如今系统要增长一块查询功能的需求,原来信心满满的跟她说稍等几分钟就好,但那结果是没有预想到的,等了老半天还没弄好,真是被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