SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.04.2010 14:09:37

Driver86
Участник
Зарегистрирован: 29.12.2009
Сообщений: 11

два условия в одном

mysql_query("UPDATE `puppy_listings` SET `time`= '".time()."', `uptime` = '".time()."', `auto_refresh` = `auto_refresh` - 1 WHERE `auto_refresh` != '0' AND `chas_refresh` = '".date('Hi')."'");

Как запрос дополнить так, что бы обновление полей `time`='".time()."', `uptime` = '".time()."' было не только при условии `auto_refresh` != '0' AND `chas_refresh` = '".date('Hi')."'", но и при обязательном условии `state` != 'closed' ?

Неактивен

 

#2 04.04.2010 14:15:03

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: два условия в одном

А почему не дописать AND state != 'closed' ?

Неактивен

 

#3 04.04.2010 15:11:03

Driver86
Участник
Зарегистрирован: 29.12.2009
Сообщений: 11

Re: два условия в одном

там же очевидно:
потому что тогда `auto_refresh` = `auto_refresh` - 1 будет обновляться при условиях, что сейчас во WHERE плюс AND state != 'closed', а мне не это нужно, а нужно, что бы AND state != 'closed' не затрагивало `auto_refresh` = `auto_refresh` - 1
Т.е. здесь нужно что то вроде IF state != 'closed' THEN `time`= '".time()."', `uptime` = '".time()."' и при этом что бы правило, которое сейчас во WHERE так же распространялось на всех, независимо от IF... т.е. state != 'closed' надо сделать дополнительным правилом персонально для `time`= '".time()."', `uptime` = '".time()."', помимо того, что во WHERE сейчас.
Нее, ну если так нельзя, то можно конечно создать два отдельных запроса..

Отредактированно Driver86 (04.04.2010 15:14:04)

Неактивен

 

#4 04.04.2010 15:19:59

Driver86
Участник
Зарегистрирован: 29.12.2009
Сообщений: 11

Re: два условия в одном

UPDATE puppy_listings
SET `time`= if(state != 'closed', '".time()."', `time`),
    uptime = if(state != 'closed', '".time()."', uptime),
    auto_refresh = auto_refresh - 1
WHERE auto_refresh != '0' AND chas_refresh = '".date('Hi')."'


вот это мне дали на одном форуме.. думаю, оно

Неактивен

 

#5 04.04.2010 15:57:17

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: два условия в одном

Да, можно и так.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson