2

id 、 name 、および num の 3 つの列を持つテーブルがあります。num が 0 より大きい場合に名前に基づいて id を選択し、同じ sql ステートメントで num をデクリメントしたい - どうすればよいですか? これらの2つのステートメントが次のことを何らかの方法で確認する必要があります。

select id from table where name='someValue' ; update table set num=num-1; 

アトミックアクションとして実行されます。どうやってやるの?

4

1 に答える 1

1
update table set num=num-1 where name='somevalue' and num>0

num が 0 より大きく、name が 'somevalue' と等しい場合、このクエリは num を 1 減らします。

于 2012-11-17T18:53:01.970 に答える