mysql - 选择、更新并返回所选值

标签 mysql sql

我需要在选择行的同时锁定行。 所以我需要某种交易来:

1) SELECT * FROM 更改,其中锁定=0

2) 更新更改 SET 锁定=1

3) 返回第一个查询结果

可能吗?

最佳答案

您可以将所有查询混合在一起,以便获得您想要的最终结果,您需要签署更改日期才能对上次更改进行排序和过滤:

事务 SQL:

string sql = "update changes set locked = 1, changed_date = getdate() where locked = 0;select top 1 * from changes order by changed_date desc;";
DataTable tbl = dal.fillAdapter();

或者调用存储过程来保存相同的查询,您可以执行标量来检查是否有任何行因为更新而受到影响,并且只有当发生更改时您才会查询最后的更改,换句话说,无穷无尽的组合来解决这个问题。

关于mysql - 选择、更新并返回所选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49939409/

相关文章:

php - SQLSTATE[42S02] : Base table or view not found: 1146 Table

sql - 在 SQL 查询中使用 'LIKE' 和 'REGEXP'

mysql - 我正在尝试从数据库中选择共同的 friend ,我该怎么做?

sql - 如何在 LEFT JOIN 中使用 Replace() 后生成的关系

sql - 使用 TFS 2010 构建 Sql 项目 - 错误 MSB4023

mysql - 为什么我可以在 innodb 的一条记录上有两个锁(X 和 S)?我知道S锁和X锁不能同时存在

php - 如何统计没有患者预约的医生?

mysql - 在 MySQL 中使用单个查询从多个表中删除

mysql 查询但是两个不同的组依据

sql - MS SQL 如何根据最旧日期查询金额