-1

整数を保持する mysql テーブル列 (runs) があります。ボタンのクリック時に更新クエリを使用して、別の動的値 (1,2,3,4,5) でインクリメントしたいと考えています。どうすればいいですか?

(そのテーブルの列から元の値を取得せずに、値をインクリメントする直接的な方法はありますか?静的な値を使用して行うため、AUTO_INCREMENT とは異なります)

4

2 に答える 2

1

ここでMySqlのドキュメントを確認しましたが、次のような更新クエリで実行できるようです:

UPDATE t1 SET col1 = col1 + 1;

ここで、col1 も数値である限り、1 を任意の数値に変更できます。MySql は col1 の初期値を取得し、それに数値を追加します。

MySql でこれができるとしても、速度にも影響があると思います。2 つのクエリよりも速いかもしれませんが、違いを判断するにはおそらくテストが必要です。

ソフトウェアの速度の問題に直面した場合、選択クエリを 1 つの値のみに保存することは、アプリを最適化するために実行できる重要な変更ではありません。Digvijay Yadav が提案したように、他のソリューションや他の最適化も確認して、アプリを高速化する必要があります。

そのページの別の例は、あなたがしようとしていることがうまくいくことも示しています:

UPDATE t SET id = id + 1 ORDER BY id DESC;

試してみて、うまくいかない場合はお知らせください。

于 2013-10-09T05:47:31.807 に答える
0

DB の相互作用が主な問題である場合、この場合、ユーザーがクリックするたびに DB を読み書きしないことをお勧めします。代わりに、一度値を取得し、DS (配列またはリストの場合があります) に格納する必要があります。クリックするたびに、このリストに対して操作を実行し、しばらくしてから更新された値で DB を更新します。

また、読み取り/書き込み操作ごとに DB 接続を作成および破棄する場合は、お勧めしません。IMO のより良い解決策は、webapp の起動時に DB 接続を作成し、サーブレットと JSP を使用しているようにconnectionオブジェクトを保存することです。ServletContextattribute

さらに、Web アプリが大きすぎて何千人ものユーザーがいる場合、DB のパフォーマンスを改善するためのキャッシュ技術がいくつかあります。

于 2013-10-09T05:50:38.140 に答える