朱杰兵blog

          jonhney'blog
          posts - 140, comments - 1, trackbacks - 0, articles - 0

          不嚴(yán)謹(jǐn)?shù)膶懛ǎ赡軙?huì)報(bào)錯(cuò):in (),這種情況不符合SQL的語(yǔ)法,導(dǎo)致程序報(bào)錯(cuò)。

          如果簡(jiǎn)單只做非空判斷,這樣也有可能會(huì)有問(wèn)題:本來(lái)in一個(gè)空列表,應(yīng)該是沒(méi)有數(shù)據(jù)才對(duì),卻變成了獲取全部數(shù)據(jù)!

          所以一個(gè)比較周全的方法是:

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          <select id="findLastPoolTaskIdsForMo" resultMap="poolTaskResult">
              SELECT  MIN(p.pool_task_id) AS pool_task_id
              FROM    pool_task p
              WHERE r_type != 2
              <if test="moCodeList != null and moCodeList.size>0">
                  AND p.mo_code IN
                  <foreach collection="moCodeList" item="item" index="index" open="(" close=")" separator=",">
                      #{item}
                  </foreach>
              </if>
              <if test="moCodeList==null or moCodeList.size==0">and 1=0</if>
              GROUP BY p.mo_code
          </select>

          如上,加2個(gè)if判斷,如果為空則永遠(yuǎn)讓語(yǔ)句查詢不到數(shù)據(jù)  


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 长岭县| 荔浦县| 江口县| 信丰县| 万全县| 台中市| 道真| 出国| 余姚市| 深圳市| 民勤县| 互助| 浦东新区| 灵山县| 兴城市| 伊吾县| 调兵山市| 开化县| 绥芬河市| 阿拉善左旗| 贺州市| 连江县| 微博| 抚顺县| 东丰县| 克拉玛依市| 鄂尔多斯市| SHOW| 北海市| 北安市| 广宁县| 岳西县| 灵武市| 临江市| 沙洋县| 嘉义市| 临夏市| 基隆市| 廊坊市| 襄垣县| 宁化县|