Ваш столбец email
относится к типу CHAR
или VARCHAR
. Когда вы используете условие email = 0
, MySQL преобразует содержимое столбца email
в целое число, чтобы сравнить его с предоставленным вами 0. Если бы вы заключили 0 в кавычки, запрос работал бы как ожидалось. (email = '0'
)
Преобразование нечисловой строки в целое число в MySQL приведет к 0.
mysql> SELECT CAST('email@example.com' AS SIGNED);
+-------------------------------------+
| CAST('email@example.com' AS SIGNED) |
+-------------------------------------+
| 0 |
+-------------------------------------+
Напротив, если вы попытались сделать то же самое с числовыми строками, они могут правильно разыграть:
mysql> SELECT CAST('12345' AS SIGNED);
+-------------------------+
| CAST('12345' AS SIGNED) |
+-------------------------+
| 12345 |
+-------------------------+