选择增量列

时间:2012-05-18 01:57:36

标签: mysql triggers

晚上,

我目前正在运行此查询:

SELECT `id`, `type`, `controller` FROM `urls` WHERE `url` = :url;
UPDATE `urls` SET `views` = `views` + 1 WHERE `url` = :url;

我在加载页面时运行它,并将views列增加1.但是,我很想知道是否有一种方法(可能使用类似触发器)可以自动增加视图列。

1 个答案:

答案 0 :(得分:2)

我找不到完全相同的内容,但Syntax for "RETURNING" clause in Mysql PDOMysql returning clause equivalent会为您提供所需的答案。

MySQL没有等效的Oracle和PostgreSQL returning into子句。你必须使用两个单独的陈述。


如果您希望进行大量更新,可能(有条件的,可能不会)更好地将视图数保存在单独的表中,尤其是当您没有返回时查询中的视图计数。如下所示:

insert into url_views values(url);

select `id`, `type`, `controller` from `urls` where `url` = :url;

然后如果您需要观看次数:

select count(*)
  from url_views
where url = :url

或使用MySQL insert ... select syntax