Where и limit

zizi_top

видел такой запрос select * from t where id=1 limit 1зачем тут нужен лимит? ведь изначально и так выбирается 1 запись
4 ответа

zizi_top

видел такой запрос select * from t where id=1 limit 1зачем тут нужен лимит? ведь изначально и так выбирается 1 запись
Прям таки одна? 1000 строк с id=1 быть не может по-определению?


zizi_top

а так, обезопасивают себя от вероятного противника (ошибок в условии или в БД)


zizi_top

подразумевается выборка 1 записи по определению, например where login=''в данном случае лимит это защита от инъекций?


zizi_top

подразумевается выборка 1 записи по определению, например where login=''в данном случае лимит это защита от инъекций?
В данном случае было бы правильным защищаться от инъекции ДО запроса. Фильтруя согласно правилам пришедшие данные и экранируя соотвествующие символы. Тем более, что я могу и БЕЗ злого умысла в качестве пароля использовать символы, которые без экранирования испортят запрос.И если предполагается, что запрос выбирает 1 одну запись по уникальному ключу, то лимит в нем абсолютно бесполезен. Наоборот - лучше его там не будет, чтобы при нарушении целостности таблицы сразу наткнуться на проблему и исправить ее.