我需要在查看页面时选择数据并更新'views'列有没有办法在一个查询中执行此操作,还是必须使用不同的查询?我可以在一个查询中的表中更新/选择吗?
2
A
回答
2
为此在两个语句如果你不希望/你需要使用一个交易,你可以创建一个存储过程,首先更新的观看次数,然后选择这些值并将它们返回给用户。
2
你将不得不在一个事务中
Begin Tran
Update Pages Set Views = Views + 1 Where ID = @ID
Select Columns From Pages Where ID = @ID
Commit Tran
0
PostgreSQL的UPDATE语句的RETURNING子句将返回设置像一个SELECT语句的结果:
UPDATE mytable
SET views = 5
WHERE id = 16
RETURNING id, views, othercolumn;
我敢肯定这是不是标准,但。我不知道其他数据库是否实现它。
编辑:我只是注意到你的问题有“MySQL”标记。也许你应该在问题中提到它。尽管这是一个很好的通用数据库问题 - 我想看看如何在其他数据库中执行此操作。
1
如果你列出你正在使用 SQL Server中的RDBMS这将有助于有OUTPUT语句
例
USE AdventureWorks;
GO
DECLARE @MyTestVar table (
OldScrapReasonID int NOT NULL,
NewScrapReasonID int NOT NULL,
WorkOrderID int NOT NULL,
ProductID int NOT NULL,
ProductName nvarchar(50)NOT NULL);
UPDATE Production.WorkOrder
SET ScrapReasonID = 4
OUTPUT DELETED.ScrapReasonID,
INSERTED.ScrapReasonID,
INSERTED.WorkOrderID,
INSERTED.ProductID,
p.Name
INTO @MyTestVar
FROM Production.WorkOrder AS wo
INNER JOIN Production.Product AS p
ON wo.ProductID = p.ProductID
AND wo.ScrapReasonID= 16
AND p.ProductID = 733;
SELECT OldScrapReasonID, NewScrapReasonID, WorkOrderID,
ProductID, ProductName
FROM @MyTestVar;
GO
0
我用这一招Java和SQL Server还可以让你送两条命令在一个PreparedStatement中。
update tablex set y=z where a=b \r\n select a,b,y,z from tablex
这将需要在读提交的事务中工作,就像你认为它应该。
相关问题
- 1. 我可以在一个查询中选择更多计数吗?
- 2. 我可以在Linq查询中选择多个对象吗?
- 3. 我可以使用稍后在查询中选择的列吗?
- 4. 我可以写一个查询有一个条件表选择
- 5. 我可以在选择Linq to Entities查询中有条件吗?
- 6. 在一个查询中选择一个值并更新状态
- 7. 我可以使用一个查询更新两个相同的表吗?MySQL
- 8. 我可以在查询中更新计算字段吗
- 9. php/mysql:从表中选择并更新一个查询
- 10. 我可以用一个查询插入/更新到两个表吗?
- 11. 更新并选择一个Hibernate查询,
- 12. 我可以合并这两个选择查询在一个?
- 13. 乘在更新子查询中选择
- 14. 我可以将这些更新查询到一个查询
- 15. mysql:在一个查询中选择,插入,删除和更新
- 16. 在同一个PL/SQL查询中选择并更新
- 17. 在一个查询中进行选择并更新
- 18. SQl更新并在一个查询中选择
- 19. MySQL在一个查询中选择并更新
- 20. 我们可以使用表名而不是java类名来选择或更新hibernate中的查询吗?
- 21. MySQL我可以从一个表或另一个表中选择数据吗?
- 22. sql-server:我可以使用单一查询更新两个表吗?
- 23. 我可以使用一个表来更新另一个表中的信息吗?
- 24. 我可以在Actionscript中的SQLite查询中一次创建多个表吗?
- 25. 是否可以在一个SQL查询中选择它?
- 26. 我们可以一起选择并更新到数据库吗?
- 27. 可以在新的select查询中引用上一个查询吗?
- 28. 您可以在一个查询中更新具有最高ID的行吗?
- 29. 我可以在MySQL中选择一个数组吗?
- 30. 我们可以在RabbitMQ中选择下一个主节点吗?