mysql - 在 SQL 中运行选择查询时更改属性值

标签 mysql sql

我正在为我的网站实现一个收件箱,我在“已读”列中将所有已读消息标记为 1。 每当对其运行选择查询时,是否可以自动将行的读取值更改为 1。 我知道我可以通过每次执行选择时执行另一个查询来更改值来做到这一点。但代码位于几个不同的地方。我们可以简单地在 SQL 端完成吗?

我正在使用 MySQL。 谢谢

最佳答案

您可以创建TRIGGER,遗憾的是没有ON SELECT触发器,因此您无法自动执行此操作。恐怕你将不得不依赖服务器端。

解决方法是使用存储过程而不是直接SELECT,并且每次执行UPDATE语句。

CREATE PROCEDURE AUTOUPDATE(in InID INT)
   BEGIN
     SELECT * FROM [TABLE] 
     where [TABLE].ID = InID 
     UPDATE [TABLE] SET read = 1
     where [TABLE].ID = InID 
   END

你像这样调用存储过程

调用 AUTOUPDATE(1324);

关于mysql - 在 SQL 中运行选择查询时更改属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24996517/

相关文章:

php - 使用 mysql_query() 时出现 mysql 错误

mysql - 这个 "no data"警告来自哪里? (光标循环)

mysql - 带打印的 SQL IF 语句

mysql - 使用连接检索空值时的困惑

SQL 查询返回前 2 个值

sql - Postgresql 触发器根据一列的值更改或更新每一行中其他列的值。

javascript - 动态改变背景颜色

mysql - 非常大的mysql插入查询需要生命周期来执行

php - 如果我们从 php 脚本发送邮件到 gmail 或其他邮件应用程序,是否有任何过滤器,例如垃圾邮件和任何其他程序

mysql - 为什么 ActiveRecord 在从数组中删除对象时要尝试删除与对象对应的行?