я таблица с именем content
с полем id
, namew
, publish_date
, unpublish_date
Если Condtion в MySQL где положение
publish_date
и unpublish_date
оба могут быть null
Теперь я хочу, чтобы выбрать данные, если publish_date is not null
затем publish_date <= CURDATE()
Задаю вопрос:
select *
from content
where if(publish_date is not null, publish_date <= CURDATE(),'')
Но я не знаю, что положить в другое условие. Coz Мне нужно только, если условие не иначе условие
И если 'publish_date' равно нулю, то что выбрать? –
Если вы хотите включить строки с нулевой датой публикации, тогда 'WHERE IF (publish_date не равно null, publish_date <= CURDATE(), 0)' или просто 'WHERE IFNULL (publish_date, CURDATE()) <= CURDATE()' хотя обертка атрибута в функции означает, что вы не сможете использовать доступные индексы. Если у вас есть указатель на publish_date, то 'WHERE publish_date IS NULL OR publish_date <= CURDATE()' – symcbean
Здесь вам, вероятно, не нужна функция 'if', если вы хотите проверить непустую и текущую или более раннюю дату .. . Необычно видеть функцию 'if' в предложении where, потому что' where' позволяет 'and',' or' – Paul