2014-02-07 83 views
0

是否有可能從一行中選擇一列在mysql中,然後更新該行中的其他列而不執行兩個查詢?到目前爲止,我從表中選擇,然後更新我選擇的同一行中的一列,並使用兩個單獨的查詢你可以選擇並加入一個mysql查詢嗎?

+4

你能展示您目前使用的查詢? –

+0

如果你可以提供表結構和查詢,那麼只有我們可以做出決定 –

+1

你可以編寫一個存儲過程來做到這一點。 http://dev.mysql.com/doc/refman/5.1/en/stored-routines.html – Nihat

回答

0

不知道MySQL,但SQL Server允許您使用更新 '表' 設置 'asignation'[ 'asignation']從 '選擇statment>' 就這樣

UPDATE vendors ven1 SET ven1.parent_name = ven2.vendor_name FROM

vendors ven2 

where ven1.parent_id = ven2.ID

0

主要是,如果SQL語句以「UPDATE ...」開頭,它可能會修改數據,但不會不會返回任何記錄集。如果它以「SELECT ...」開頭,它將返回記錄,但不會修改副作用。這在子查詢中也是如此,因爲您無法在子查詢中使用UPDATE。

所有這些也都與訪問權限的結構化分離有關(例如,只有SELECT權限的用戶不應該能夠修改數據)。