2012-01-13 60 views
4

SQL(MySQL)中是否有增加值的方法,並且還可以在單​​個查詢中返回值。我試圖做卵形兩個查詢類似如下:SQL更新和在單個查詢中選擇

查詢1

UPDATE my_table SET my_col = (my_col + 1) WHERE something = something_else; 

QUERY 2

SELECT my_col FROM my_table WHERE something = something_else; 

感謝。

+0

你不能。 – 2012-01-13 11:34:48

+0

爲什麼你不想做兩個查詢? – Taryn 2012-01-13 11:35:05

+0

爲什麼你想這樣做?,你可以從PHP方面計算它 – amd 2012-01-13 11:35:38

回答

0

無法同時進行選擇和更新。 如果你想避免選擇,你可以聲明一個變量並在那裏放置該值,但是這會將最後一次更新的行值放入變量中。

declare @value int 

UPDATE my_table SET my_col = (my_col + 1), @value = (my_col + 1) WHERE something = something_else; 
+0

但是他們如何返回@value?一個選擇仍然需要執行 – Taryn 2012-01-13 11:38:55

+0

@bluefeet就像我說的,這隻能避免從表中選擇數據。他將不得不選擇變量。 – 2012-01-13 11:40:47

2

據我所知,還有在MySQL中沒有這樣的可能性,但看看this question一個可能的解決方法,至少可以讓你有一個事務相同的數據的選擇和更新工作。