mysql - 选择时增加列

标签 mysql triggers

晚上,

我当前正在运行此查询:

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 PDOMysql 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/

相关文章:

mariadb 中的 mysql 触发器语法错误

c# - 消息框不显示数据库中是否有受影响的行 C# MySQL

mysql - 通过触发器插入 UUID 与 UUID - 性能

MySQL 错误 : #1046 - No database selected

python - 使用 mysql 数据库配置 apache 超集

javascript - 根据功能选择特定的 onchange 事件

jenkins - jenkins 多分支管道中的分支索引会触发额外的构建,该构建已由 poll SCM 构建

MySQL触发器: Prevent Insert by IF statement

mysql - 选择给定 parent_id 的回复文本

php - Zend Framework 选择运算符优先级