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

フランクとダニーのIDのみが3より大きいため、結果のSELECTはフランクとダニーを生成します。したがって、それぞれの' 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 に答える