如何在MySQL上运行及时的自动查询

时间:2017-02-13 08:31:33

标签: php mysql

我有一个名为pending的字段,并声明为布尔值,默认值为0

`pending` tinyint(1) NOT NULL DEFAULT '0'

我正在数据库中再次运行更新查询,以将q pending的状态更改为1,如下所示

$sql = "UPDATE  `appointments` SET  `pending` =  '1' WHERE  `appointments`.`id` = 124;

现在我的问题是,有没有办法在30分钟后通过采用像

这样的条件子句自动重新陈述pending0
// After 30 Minutes of update!
if (!confirmed){
    $sql = "UPDATE  `appointments` SET  `pending` =  '0' WHERE  `appointments`.`id` = 124;
}

表架构

CREATE TABLE IF NOT EXISTS `appointments` (
  `id` int(6) NOT NULL AUTO_INCREMENT,
  `date` varchar(100) CHARACTER SET utf8 NOT NULL,
  `available` tinyint(1) NOT NULL DEFAULT '1',
  `pending` tinyint(1) NOT NULL DEFAULT '0',
  `confirmed` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

1 个答案:

答案 0 :(得分:0)

你做错了。

使您的待定字段不是布尔值,而是使用到期时间值的日期时间。然后在您的选择查询中,只需将该值与当前时间进行比较。而不是

SELECT * FROM appointments WHERE pending = 1

只是做到了

SELECT * FROM appointments WHERE pending < NOW()

这个解决方案更简单,更灵活