菜猿联盟 2019-08-13 15:43 采纳率: 60%
浏览 257

一个有关SQL语句问题。。。

假设 我有五个参数 带入到SQL中当作五个条件去查询,
如果没有查到数据则去掉一个我指定的条件,
如果还是没有查到则继续去掉一条件,以此类推,直到有结果返回
如何在一条SQL上实现这样的效果

  • 写回答

3条回答 默认 最新

  • weixin_40852944 2019-08-13 15:49
    关注

    在条件前加 if判断;if(条件是否存在)(...)


    select * from a 
    where (a.条件1=#{con1} and a.条件2=#{con2} and a.条件3=#{con3} and a.条件4= #{con4} and a.条件5= #{con5}) 
    or (a.条件1=#{con1} and a.条件2=#{con2} and a.条件3=#{con3} and a.条件4= #{con4}) 
    or (a.条件1=#{con1} and a.条件2=#{con2} and a.条件3=#{con3})
    or(a.条件1=#{con1} and a.条件2=#{con2})
    or(a.条件1=#{con1})
    

    where 后面的条件利用for进行遍历拼接

    评论

报告相同问题?