2013-06-12 89 views
0

我想跟蹤一個mysql查詢返回一行的次數。有沒有辦法通過選擇INCREMENT行數據?我希望一次執行此操作,同時運行兩個查詢。MYSQL SELECT和INCREMENT在相同的查詢?

所以一個粗略的想法,

SELECT * FROM data WHERE text in($search) & UPDATE hits=hits+1 

類似的東西。

+0

http://stackoverflow.com/questions/562693/mysql-update-and-select-in-one-pass – user20232359723568423357842364

+0

@ user20232359723568423357842364:所有這些問題的答案是可怕的......不過話又說回來,這樣的查詢。 :) –

+3

我認爲你是MySQL上的SOL。 PostgreSQL將允許您執行UPDATE ... RETURNING,但除此之外,它可能需要在應用程序層進行處理。 –

回答

0

SELECT * FROM數據,其中文本($搜索)& UPDATE命中=命中+ 1

假設hitsdata,你可以這樣做在兩個查詢像這樣:

UPDATE data 
SET hits=hits+1 
WHERE text in($search); 

SELECT * FROM data WHERE text in($search); 

Postgres將允許您在一條語句中使用update語句中的returning *子句執行此操作,但就是這樣。

+3

我進一步補充說,上述可以使用交易原子進行。 – eggyal