0

我正在寻找表“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

我怎样才能实现这种行为?

4

3 回答 3

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

这是演示

于 2012-12-02T14:40:15.550 回答
2

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

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

检查此参考:)

SQLFIDDLE

于 2012-12-02T14:40:35.197 回答
0

也许用一个CASE表达:

select  ID
      , NAME
      , CASE WHEN SHOWN > 3 THEN SHOWN + 1 ELSE SHOWN END as SHOWN
FROM A
于 2012-12-02T14:42:01.173 回答