【不懂就问】where 1=1 怎么样?

缘由

新进公司,看到项目中基本每个sql都有写where 1 = 1这个sql拼接,仔细想想这样好不好?然后找谷歌问了问,有些人说没啥不好,有些人说有缺点,那就自己试一试。

实践是检验真理的唯一标准

  • 优点

    sql拼接的时候不用管后面跟了and xxx的时候,就不用处理这个and了,方便!

  • 缺点

    真的有缺点吗?网上有些人说加了1=1就不会索引了,那就explain一下

    image-20210804152814354

    LOGINID唯一索引,执行sqlexplain select * from frame_user where LOGINID = 'admin';结果出发了索引,这个很正常;image-20210804152904260

    然后加上1=1试试,执行sqlexplain select * from frame_user where 1=1 and LOGINID = 'admin';,结果一毛一样,同样走了索引

    image-20210804153012545

结果

where 1=1没啥坏处,随便用吧

如果以上有哪里说的不对,欢迎指出,反正不懂就问!

猜你喜欢

转载自juejin.im/post/6992475121608818702
今日推荐