【Спросите, если вы не понимаете】 Как насчет того, где 1 = 1?

MySQL

причина

Новичок в компании, видите, что в основном каждый sql в проекте написанwhere 1 = 1Это склейка sql, хорошенько подумайте, хорошо ли это? Потом я спросил у Google, и некоторые люди сказали, что это неплохо, а некоторые люди сказали, что есть недостатки, так что попробуйте сами.

Практика — единственный критерий проверки истины.

  • преимущество

    При сплайсинге sql не беспокойтесь о обратной сторонеand xxx, вам не нужно иметь дело с этимandТеперь удобно!

  • недостаток

    Действительно ли есть недостатки? Некоторые люди в Интернете говорят, что1=1не будет индексироваться, тоexplainодин раз

    image-20210804152814354

    Логин Уникальный индекс, Выполнить 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Нет никакого вреда, просто используйте его

Если что-то не так с вышеизложенным, пожалуйста, укажите на это или спросите, если вы не понимаете!