Example查詢SQL之or查詢and查詢


  • 問題描述

通過Example實現如下SQL語句功能

SELECT T.* FROM DAA_ORGINFO T WHERE T.DAA_ZTNO='參數' AND T.ID = '參數' OR T.DAA_ID_SJ='參數'

 



因為Example‘沒有直接寫or的方法,所以需要通過and來構造改SQL語句,首先我們分析一下,進行改造如下:

SELECT T.* FROM DAA_ORGINFO T WHERE (T.DAA_ZTNO='參數' AND T.ID = '參數') OR (T.DAA_ZTNO='參數' AND T.DAA_ID_SJ='參數')

 

  • 解決方法

實現方式如下:

   //1.根據訂單ID查出用戶ID
            Example example=new Example(TOrderOrder.class);
            Example.Criteria criteria = example.createCriteria();
            criteria.andEqualTo("id",orderId)
                     .andGreaterThan("mark",0)
                    .andEqualTo("type",1)
                    .andEqualTo("isReturn",0);
            Example.Criteria criteria2 = example.createCriteria();
            criteria.andEqualTo("id",orderId)
                    .andGreaterThan("mark",0)
                    .andEqualTo("type",2)
                    .andEqualTo("isReturn",0);
            example.or(criteria2);
            List<TOrderOrder> orderInfolist= tOrderOrderDao.getListByExample(example);

 

 

  • xml中的SQL寫法,因項目問題,example重新構造,可參考如下:
 1 <select id="getDataGridByExample" resultType="com.ctg.pbis.partymanage.daaorginfo_x.entity.DaaOrginfo">
 2 SELECT T.*, GET_NAME_BYDYID(T.DAB_ID_LXR) DAB_ID_LXR_NAME, GET_NAME_BYDYID(T.DAB_ID_ZZSJ) DAB_ID_ZZSJ_NAME
 3 FROM DAA_ORGINFO T
 4 WHERE 1=1
 5 <if test="example != null">
 6 <trim suffix="" suffixOverrides="and">
 7 <trim suffix="" suffixOverrides="()">
 8 AND
 9 <trim prefix="(" suffix=")">
10 <foreach collection="example.oredCriteria" item="criteria" separator="or">
11 <if test="criteria.valid">
12 <trim prefix="(" suffix=")" prefixOverrides="and">
13 <foreach collection="criteria.criteria" item="criterion">
14 <choose>
15 <when test="criterion.noValue">
16 and ${criterion.condition}
17 </when>
18 <when test="criterion.singleValue">
19 and ${criterion.condition} #{criterion.value}
20 </when>
21 <when test="criterion.betweenValue">
22 and ${criterion.condition} #{criterion.value} and
23 #{criterion.secondValue}
24 </when>
25 <when test="criterion.listValue">
26 and ${criterion.condition}
27 <foreach collection="criterion.value" item="listItem" open="(" close=")"
28 separator=",">
29 #{listItem}
30 </foreach>
31 </when>
32 </choose>
33 </foreach>
34 </trim>
35 
36 </if>
37 </foreach>
38 </trim>
39 </trim>
40 </trim>
41 </if>
42 
43 <if test="example.orderByClause != null">
44 order by ${example.orderByClause}
45 </if>
46 
47 </select>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM