0

我正在创建一个显示文章的网站。文章表具有以下字段:

article_id
title
text
views

ATM 我正在​​选择文章并输出它,但我还想增加同一查询中的视图,即“views=views+1”。

查询看起来像这样

SELECT article_id, title, text, views
SET views=views+1
WHERE article_id=:article_id

我也想在输出中获得视图的增量结果,所以我猜我需要将 SET 放在 SELECT 之前。

4

1 回答 1

1

它必须是两个单独的查询。

SELECT 
    article_id, 
    title, 
    text, 
    views
FROM TABLE
WHERE article_id = article_id;

UPDATE TABLE
SET views = views + 1
WHERE article_id = article_id;

您可以将它们包装在事务中以强制两者发生或回滚。

START TRANSACTION;

SELECT 
    article_id, 
    title, 
    text, 
    views
FROM TABLE
WHERE article_id = article_id;

UPDATE TABLE
SET views = views + 1
WHERE article_id = article_id;

COMMIT;
于 2013-01-24T17:07:42.780 回答