Общие > Базы данных
как составить запрос с конструкцией IF()?
(1/1)
Nicki:
Есть таблица с такими полями
id int UNSIGNED NOT NULL auto_increment,
url varchar(150) NOT NULL,
isOn enum(\'Y\',\'N\') NOT NULL default \'Y\',
period int UNSIGNED NOT NULL default \'1\',
unit enum(\'hour\',\'day\') NOT NULL default \'day\',
lastTime datetime NOT NULL
мне нужно в запросе выбирать записи которые уже требуют обработки. обработка делается с определенным интервалом времени и время последней обработки пишется в lastTime. как мне составить запрос, чтобы в самом запросе вычислять время и по нему отбирать записи к обработке. я думаю нужно использовать IF() но пока не знаю как и в доках об этом почти ничего нет.
вот мой неработающий вариант запроса:
SELECT * FROM ефиду WHERE isOn=\'Y\' AND (NOW()-UNIX_TIMESTAMP(lastTime)) > (IF(unit=\'day\',86400,3600) * period)
плиз подскажите как правильно
commander:
Nicki
--- Цитировать ---плиз подскажите как правильно
--- Конец цитаты ---
пишем функцию...
Nicki:
функции пишутся прямо в запросе или подключаются извне? мне же нужно просто выбрать значение на основе значения в unit, и все. в запросе нельзя как нибудь это сделать?
commander:
Nicki
есть два варианта:
1. написать функцию (что это такое и как работает? курим доку: http://www.mysql.ru/docs/man/)
2. переложить задачу на плечи приложения.
Навигация
Перейти к полной версии