晚上,
我目前正在运行此查询:
SELECT `id`, `type`, `controller` FROM `urls` WHERE `url` = :url;
UPDATE `urls` SET `views` = `views` + 1 WHERE `url` = :url;
我在加载页面时运行它,并将views列增加1.但是,我很想知道是否有一种方法(可能使用类似触发器)可以自动增加视图列。
答案 0 :(得分:2)
我找不到完全相同的内容,但Syntax for "RETURNING" clause in Mysql PDO和Mysql 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。