查询语句中if的where改进
来源:互联网 发布:如何新建数据库表 编辑:程序博客网 时间:2024/06/05 20:28
查询语句中if的where改进
进一步扩展如果想把where后面的部分都动态化,这里以性别为例,查询时如果参数中有不为空的性别值,则根据性别查询,反之则查询所有,有了前面if的学习,我们不难写出如下动态SQL:
select * from person where青羊区女性无痛人流多少钱
锦江区男科包皮手术多少钱
龙泉区看早泄哪家医院好啊
温江区男性医院排名
温江区看包皮包茎手术贵吗
gender = #{gender}
这时候问题来了,当性别不为空时,语句是 select * from person where gender = #{gender} ,这样还能正常查询出我们想要的结果,但是如果性别为空,会发现语句变成了 select * from person where ,这显然是生成一个错误的SQL了,为了解决类似的问题,动态SQL能帮我们解决这个问题,我们可以将上述语句优化成如下:
select * from person 武侯区哪家医院做人流好呢?
武侯区哪家妇科医院看病便宜
青羊区哪个医院无痛人流好呢
温江哪家医院人流手术做的好
锦江区治疗阳痿哪家医院好 gender = #{gender}
这样mybatis在这里会根据标签中是否有内容来确定要不要加上where,在这里使用后,如果年龄为空,则前面引发错误的where也不会出现了。
阅读全文