晚上,
我当前正在运行此查询:
SELECT `id`, `type`, `controller` FROM `urls` WHERE `url` = :url;
UPDATE `urls` SET `views` = `views` + 1 WHERE `url` = :url;
我在加载页面时运行此命令,它会将 View 列增加 1。但是,我很想知道是否有一种方法(可能使用触发器之类的东西)可以自动增加 View 列。
最佳答案
我找不到完全相同的副本,但 Syntax for "RETURNING" clause in Mysql PDO和Mysql returning clause equivalent给你你需要的答案。
MySQL 没有相当于 Oracle 和 PostgreSQL 的 returning into
子句。您必须使用两个单独的语句。
如果您希望进行大量更新,可能(有条件的,也可能没有)最好将 View 数量保留在单独的表中,尤其是当您不返回时查询中的查看次数。类似于以下内容:
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 .
关于mysql - 选择时增加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645797/