У вас очевидно есть ноль строк.
Когда вы используете агрегатную функцию, такую как MAX () или COUNT (), запрос вернет хотя бы одну строку, даже если в таблице есть ноль строк.
MAX(id)
возвращает значение NULL, если в наборе строк, которые он просматривает, нет ненулевых значений идентификатора. Если у вас ноль строк, возвращается NULL.
NULL = NULL
не возвращает true, возвращается NULL.
mysql> select null=null;
+-----------+
| null=null |
+-----------+
| NULL |
+-----------+
IF(NULL, 'true', 'false')
возвращает false.
Возможно, вы захотите прочитать о нулевом безопасном операторе равенства .
mysql> select null <=> null;
+---------------+
| null <=> null |
+---------------+
| 1 |
+---------------+