У меня есть два запроса. Ошибок в этих запросах не так.Почему разные результаты с помощью запросов Mysql
Запрос 1
SELECT * FROM notices
WHERE CURDATE() < end_date
OR end_date = NULL
ORDER BY id
Результат запроса One:
Запрос 2
select * from notices
where CURDATE() < end_date or end_date='0000-00-00'
order by id
Результат запроса Два:
Структура таблицы
Вопрос
Мой вопрос заключается в том, что почему запрос не 1 показывая те же результаты, что и запрос 2?
По существу, вы спрашиваете, почему два разных запросов дают разные результаты :) В первом запросе, вы проверяете, если end_date является NULL конкретно, в то время как второй проверки, если end_date также равным '0000-00-00'. –
Но когда я вставляю, я использую 'NULL' для даты окончания, тогда он сохраняет' 0000-00-00'. Поэтому в соответствии с этим я говорю, что во время выбора почему он не работает с 'NULL' –
Теперь это звучит так, как в столбце end_date содержится' NOT NULL DEFAULT '0000-00-00'' в его определении. Это означало бы, что, когда строка будет вставлена в базу данных, если «end_date» отсутствует, на его месте будет использоваться «0000-00-00». Пожалуйста, обновите свой вопрос своей схемой таблицы –