2012-04-02 23 views
0

テーブルから行を選択し、選択した行の列をインクリメントしながらPHPでの処理ストアドプロシージャ:選択した行をテーブルから戻し、選択したテーブル行の列を増やす方法

私は例えば出力select文の結果を、したいのですが...

SELECT * FROM TBL WHERE = '他の' 何か。

この表には一意の「id」列があります。

同じ手順で、選択したテーブル行の列を増分したいと思います。

これは可能ですか?

ありがとう、

答えて

0

私はこれを単一のSQL文で行うことはできません。 this threadに記載されているのと同様のストアドプロシージャで実行できます。インクリメントの前または後に列の値を指定しますか?

+0

インクリメントされた値は、返されるデータまでは関係しません。したがって、前または後である可能性があります。しかし、私は行の複数の列の値が返されることを望むでしょう。ありがとう。 – christian

+0

それに似た何かの代わりにそれをすることに利点がありますか? SET @id = 0; SELECT(@ id:= id)AS id、tbl.another FROM tbl WHERE something = 'else'; UPDATE tbl SET num = num + 1 WHERE id = @id; – christian

+0

@christian - 1つの利点は、ストアドプロシージャの呼び出しがサーバーとの1つの対話であることです。ストアドプロシージャは、ロックおよび/またはトランザクション処理を組み込んで、データの整合性を向上させることもできます。ストアドプロシージャの欠点は、サーバーに多少の負荷がかかり、(おそらくそれだけでも)一部のISPがMySQLのストアドプロシージャを無効にするということです。 –

関連する問題