0
我想跟蹤一個mysql查詢返回一行的次數。有沒有辦法通過選擇INCREMENT行數據?我希望一次執行此操作,同時運行兩個查詢。MYSQL SELECT和INCREMENT在相同的查詢?
所以一個粗略的想法,
SELECT * FROM data WHERE text in($search) & UPDATE hits=hits+1
類似的東西。
我想跟蹤一個mysql查詢返回一行的次數。有沒有辦法通過選擇INCREMENT行數據?我希望一次執行此操作,同時運行兩個查詢。MYSQL SELECT和INCREMENT在相同的查詢?
所以一個粗略的想法,
SELECT * FROM data WHERE text in($search) & UPDATE hits=hits+1
類似的東西。
SELECT * FROM數據,其中文本($搜索)& UPDATE命中=命中+ 1
假設hits
是data
,你可以這樣做在兩個查詢像這樣:
UPDATE data
SET hits=hits+1
WHERE text in($search);
SELECT * FROM data WHERE text in($search);
Postgres將允許您在一條語句中使用update
語句中的returning *
子句執行此操作,但就是這樣。
我進一步補充說,上述可以使用交易原子進行。 – eggyal
http://stackoverflow.com/questions/562693/mysql-update-and-select-in-one-pass – user20232359723568423357842364
@ user20232359723568423357842364:所有這些問題的答案是可怕的......不過話又說回來,這樣的查詢。 :) –
我認爲你是MySQL上的SOL。 PostgreSQL將允許您執行UPDATE ... RETURNING,但除此之外,它可能需要在應用程序層進行處理。 –