我需要在查看頁面時選擇數據並更新'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. 我可以寫一個查詢有一個條件表選擇
- 6. 我可以在選擇Linq to Entities查詢中有條件嗎?
- 7. 在一個查詢中選擇一個值並更新狀態
- 8. 我可以使用一個查詢更新兩個相同的表嗎?MySQL
- 9. 我可以在查詢中更新計算字段嗎
- 10. php/mysql:從表中選擇並更新一個查詢
- 11. 我可以在MySQL中選擇GROUP BY查詢的最後一行嗎?
- 12. 我可以用一個查詢插入/更新到兩個表嗎?
- 13. 更新一個選擇查詢
- 14. 更新並選擇一個Hibernate查詢,
- 15. 我可以合併這兩個選擇查詢在一個?
- 16. 乘在更新子查詢中選擇
- 17. 我可以將這些更新查詢到一個查詢
- 18. 我們可以使用表名而不是java類名來選擇或更新hibernate中的查詢嗎?
- 19. MySQL我可以從一個表或另一個表中選擇數據嗎?
- 20. 我可以使用一個表來更新另一個表中的信息嗎?
- 21. sql-server:我可以使用單一查詢更新兩個表嗎?
- 22. mysql:在一個查詢中選擇,插入,刪除和更新
- 23. 在一個查詢中選擇記錄並更新
- 24. 在一個查詢中進行選擇並更新
- 25. MySQL在一個查詢中選擇並更新
- 26. 在同一個PL/SQL查詢中選擇並更新
- 27. SQl更新並在一個查詢中選擇
- 28. 從選擇查詢中選擇記錄後更新查詢
- 29. 我可以在Actionscript中的SQLite查詢中一次創建多個表嗎?
- 30. 我可以在單個LINQ查詢中完成此查詢嗎?