Автор Тема: как составить запрос с конструкцией IF()?  (Прочитано 2463 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nicki

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 107
  • +0/-0
  • 0
    • Просмотр профиля
    • http://cprazdnikom.ru
Есть таблица с такими полями

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

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
как составить запрос с конструкцией IF()?
« Ответ #1 : 04 Мая 2005, 12:49:38 »
Nicki
 
Цитировать
плиз подскажите как правильно

пишем функцию...
And no religion too...

Оффлайн Nicki

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 107
  • +0/-0
  • 0
    • Просмотр профиля
    • http://cprazdnikom.ru
как составить запрос с конструкцией IF()?
« Ответ #2 : 04 Мая 2005, 12:58:00 »
функции пишутся прямо в запросе или подключаются извне? мне же нужно просто выбрать значение на основе значения в unit, и все. в запросе нельзя как нибудь это сделать?
Поздравления с днем Святого Валентина

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
как составить запрос с конструкцией IF()?
« Ответ #3 : 04 Мая 2005, 13:01:49 »
Nicki
есть два варианта:
1. написать функцию (что это такое и как работает? курим доку: http://www.mysql.ru/docs/man/)

2. переложить задачу на плечи приложения.
And no religion too...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28