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,但除此之外,它可能需要在应用程序层进行处理。 –