Ложное значение в предложении Where возвращает все строки?

У меня есть запрос, который выглядит следующим образом:

`SELECT id, username FROM table_name WHERE username=0`

Когда я запускаю этот запрос, MySQL возвращает все строки в table_name. Кроме того, если я заменю 0 на false, я получу те же результаты. Если я использую пустую или пустую строку, то я не получаю возвращаемых строк (как и ожидалось).

Столбец имени пользователя - varchar (50), если это имеет значение.

Мой вопрос такой :

Почему установка 0 или false в этом запросе возвращает все строки в таблице? Это настройка MySQL?

Это меня немного беспокоит, поскольку я действовал в предположении, что указанный выше запрос не вернет никаких строк (в данном конкретном случае), и мне интересно, происходит ли это где-нибудь в моем приложении и какие непредвиденные последствия, которые это могло иметь.

6
задан Bill the Lizard 9 August 2011 в 20:20
поделиться