есть таблица:
CREATE TABLE IF NOT EXISTS `test` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`data` VARCHAR(255) DEFAULT NULL,
`int` INT(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
`id` INT(11) NOT NULL AUTO_INCREMENT,
`data` VARCHAR(255) DEFAULT NULL,
`int` INT(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
Помогите пожалуйста сформировать вот такой запрос:
UPDATE `test` SET `data` = '0' WHERE `int`-11 < 0
Никак не доходит как же правильно составить..
вот как пробывал:
<?php
db_query("UPDATE {test} SET data = :data WHERE int - :num <0", array(':data' => 0, ':num' => 11));
db_query("UPDATE {test} SET data = 0 WHERE int - 11 <0");
$q=db_update('test');
$q->fields(array('data' => 0));
$q->where('int-:num < 0', array(':num' => 11));
$q->execute();
?>
Комментарии
UPDATE `test` SET `data` = '0' WHERE `int`-11 < 0 = UPDATE `test` SET `data` = '0' WHERE `int` < 11
не не не..
мне не нужно выбирать то что меньше 11.
мне нужно от числа находящегося в ячейке int отнять 11 и это значение должно быть меньше нуля..
А.
в данном случае правда что так оно получается..
значит я не правильно вопрос задал.
в место нуля может быть любое число. например.
Более конкретно задача следующая:
Нужно обновить ячейку data у всех пользователей, у которых прошло больше месяца с момента регистрации.
Время записано в timestamp. Например время создания профиля - 1428168483
тогда запрос нужно составить таким образом чтобы от текущего времени отнять 1428168483 и получится число. если это число больше 2629743 (секунд в месяце), то обновляем ячейку data.
причем такое обновление нужно делать постоянно.
каждый раз обновлять поле у пользователей у которых прошел месяц с предыдущего обновления.
т.е. нужно будет создать еще поле, в котором записывать дату предыдущего обновления, и сверяться с ней.
блин. внатуре.
вечером голова уже не работала.. тупняки ловил..))
Спасибо парни!!)
ну а к примеру такой запрос в через drupal db api получится сформировать?
или