我有mysql表帖子

Posts
  PostId (int)
  PostTitle (varchar)
  PostContent (text)
  PostHits (int)
  PostStatus (varchar)

我在select查询中读到这些记录,比如
SELECT * FROM posts WHERE PostStatus LIKE 'ALIVE';

如果所有记录都符合where子句的条件,是否有可能在每个select上都增加其值PostHits?如果是,那么最好的方法是什么,目前我使用两个查询来完成,选择然后根据where id in(all selected posts ids)进行更新。我正在寻找单一查询解决方案。

最佳答案

这是你需要的吗?

UPDATE posts
SET PostHits = PostHits + 1
WHERE PostStatus LIKE 'ALIVE'

仅使用SELECT
SELECT
    PostId,
    PostTitle,
    PostContent,
    PostHits + 1 AS PostHits,
    PostStatus
FROM posts
WHERE PostStatus LIKE 'ALIVE'

10-04 10:43