MYSQL增量'显示' WHERE匹配行的行

时间:2012-12-02 14:36:36

标签: mysql sql

我正在寻找表'A'的解决方案,其结构是:

ID      NAME    SHOWN
1       Eddie    0
2       Marie    1
3       Shawn    15
4       Frank    12
5       Danny    7

我想在这个表上提交一个SELECT,这样对于每个结果行,“SHOWN”会增加,例如:

SELECT * from 'A' WHERE `ID`>3;

会导致表'A'发生以下变化:

ID      NAME    SHOWN
1       Eddie    0
2       Marie    1
3       Shawn    15
4       Frank    13
5       Danny    8

只有Frank和Danny的ID大于3,因此生成的SELECT会产生Frank和Danny,因此,他们各自的“SHOWN”列增加了1

我该如何实现这种行为?

3 个答案:

答案 0 :(得分:2)

update A set shown=shown+1 where ID >3)

这是Demo

答案 1 :(得分:2)

您可以使用预期的增量更新您的表格。

UPDATE A
SET SHOWN = SHOWN + 1
WHERE ID > 3

检查此引用:)

SQLFIDDLE

答案 2 :(得分:0)

也许使用CASE表达式:

select  ID
      , NAME
      , CASE WHEN SHOWN > 3 THEN SHOWN + 1 ELSE SHOWN END as SHOWN
FROM A