В процессе создания запросов к БД, возможно вам потребуется динамически добавлять условия where в запрос. Например, в зависимости от переданных / непереданных аргументов. В таком случае не понятно, сколько всего условий добавится в запрос, и с какого условия он будет начинаться.
Решение просто: всегда используйте метод andWhere() вместо where().
Он не добавит лишних AND в sql, но добавит нужный код.
Почему использовать where() в данном случае не получится: каждый следующий where() заменит предыдущий, а не дополнит.