[英]MySQL UPDATE and SELECT from same table in subquery
首先,我知道從MySQL 5.1.x開始這是不可能的,它在這里這樣說:
http://dev.mysql.com/doc/refman/5.1/en/update.html
我要問的是,是否有一種聰明的方法可以使用臨時表/視圖執行查詢,而不必借助編寫快速腳本來完成工作。 我的查詢(完全錯誤並且無法正常工作,僅供在家里嘗試的人參考)看起來像這樣:
UPDATE some_table
set some_col = ( SELECT some_othercol
from some_table
WHERE some_col > some_othercol
);
如果sol_col > some_othercol
我試圖最終將some_col
設置為some_othercol
的值。
不借助腳本來處理此問題的最佳方法是什么?
編輯我的子查詢返回多個行!
我不太了解為什么需要子查詢。 這不是您想要的嗎?:
UPDATE some_table
SET some_col = some_othercol
WHERE some_col > some_othercol
我不確定這是否正是您要嘗試的方法,但是也許我可以向您展示一些東西,以使您走上正確的道路。
UPDATE some_table ST
SET some_col = (
SELECT some_col
FROM some_table OT
WHERE OT.ID = ST.ID
)
WHERE ST.some_col > 2
這會將some_col設置為其自己的值,但是僅當some_col已經大於2時。我知道這不會做任何事情,但是它顯示的概念可能更接近您想要的內容。 如果您最后給出了一些詳細信息,我可能會幫助您找到更接近您需要的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.