在mybatis 中使用if else 进行判断的操作
我就废话不多说了,大家还是直接看代码吧~
SELECT i.itemsid FROMpq_goods_itemsi i.personone=#{personone} ANDi.persontwo=#{persontwo} ANDi.color=#{color} i.personone=#{personone} ANDi.persontwo=#{persontwo} ANDi.colorisnull
需要注意的是使用了where标签以后,sql中不在使用where字段来限制条件
如果判断条件有多个中间用and表示并列
补充:mybaits中if多个test和ifelse分支支持
mybaits中if多个test
select fromgene_polymorphism diag_id=#{conds.diagId,jdbcType=INTEGER} andchromesome=#{conds.chromesome,jdbcType=VARCHAR} andstart_pos>=#{conds.startPos,jdbcType=BIGINT}
ifelse分支:
select fromgene_polymorphism diag_id=#{conds.diagId,jdbcType=INTEGER} orderbyandchromesome=#{conds.chromesome,jdbcType=VARCHAR} andstart_pos>=#{conds.startPos,jdbcType=BIGINT} andend_pos<=#{conds.endPos,jdbcType=BIGINT} and( gene_typelikeCONCAT('%',CONCAT(#{item,jdbcType=VARCHAR},'%')) ) andgene_changelikeCONCAT('%',CONCAT(#{conds.geneChange,jdbcType=VARCHAR},'%')) chromesomeasc, chromesomedesc, limit#{startRow,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER} start_posasc, start_posdesc, iddesc
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。