update accounts set type=1 where id=2;
update accounts set type=3 where id=4;
1
A
回答
3
同時?如果您的意思是在查詢完成之前您想確保沒有其他查詢影響表格,那麼您將要將它們包裝在一個事務中。
2
正是你問什麼會
update accounts set type = case id when 2 then 1 else 3 end where id in (2,4)
但總的來說,這是當然的impossibe。
0
您可能會覺得這篇文章很有趣。我得到的評論比文章更多,但文章很有趣: http://blog.bubble.ro/how-to-make-multiple-updates-using-a-single-query-in-mysql/
他的技術可能不適合你,但它是一種方法。
最好的辦法是編寫一個存儲過程並讓它執行多次更新,或者,如果程序有某種方法來確定第二個查詢的值,則可以使用觸發器,但我期望那不會幫助你。
1
此:
UPDATE ACCOUNTS t SET t.type = 1 WHERE t.id = 2; UPDATE ACCOUNTS t SET t.type = 3 WHERE t.id = 4;
...是可以接受的SQL語句的語法 - 的 「;」是一個語句分隔符。這些語句不會同時執行 - 數據庫中沒有任何內容,所有內容都按照提交順序處理(儘管擺脫隔離級別可以解決這個問題)。
但是,大多數APIs會阻止像這樣的多個語句執行,以阻止SQL注入攻擊。你發現正在使用的是阻止你執行語句?
0
這不是一個通用的解決方案,但在這種特殊情況下:
update accounts
set type = id - 1
where id = 2
or id = 4;
這是一個說法......
1
如果你希望他們一次,你可以使用一個交易發生:
SET autocommit=0;
START TRANSACTION;
update accounts set type=1 where id=2;
update accounts set type=3 where id=4;
COMMIT;
請注意,您需要禁用自動提交或在第一次更新時發生提交。
相關問題
- 1. PHP sqlsrv_execute多次重新執行一條準備語句
- 2. 更新語句不執行
- 3. 更新語句只運行一次。?
- 4. 如果第一條語句存在,執行第二條語句
- 5. 單步執行彙編語言程序一次只能執行一條語句
- 6. 在一個NHibernate的HQL語句執行多次更新
- 7. 2更新語句輸出條款
- 8. 如何將2條SQL語句合併爲一條語句
- 9. 如何一次更新2個mysql行?
- 10. 如何執行兩條if語句
- 11. ActiveRecord :: Base.connection.execute一次只能執行一條語句嗎?
- 12. SQL如何使用一條SQL語句更新錶行
- 13. SQL - 如何用一條SQL語句更新兩行表
- 14. 如何每3次循環執行一次語句?
- 15. 如果第一條語句被成功執行,請運行第二條語句
- 16. 在一條語句而不是兩條SQL語句中更新
- 17. 開關語句:執行代碼一次
- 18. TADOQuery.Open執行語句,但只有一次
- 19. 一次執行所有'if'語句
- 20. NEO4J執行幾條語句
- 21. 執行多條select語句
- 22. Matlab再次執行循環,直到第一條語句結束
- 23. 最後一條語句沒有執行
- 24. 切換隻執行一條語句
- 25. 如何在執行前更改更新語句:Linq2Sql類
- 26. 無法執行與CASE語句更新
- 27. OracleDatareader似乎執行更新語句
- 28. 兩個更新上一條語句
- 29. MySQL更新和選擇一條語句
- 30. WITH語句每個查詢執行一次還是每行執行一次?
嗯,根據你在那裏寫的陳述,你不能將這兩個更新語句組合在一起。你正在使用哪種編程語言? – mauris