2016-05-14 6 views
0

この場合、あなたの助けが必要です。私は、そのテーブルの後カウンターを値1を選択し、列の値を更新する必要が仕分けした後MySQLの選択値X回別の列の数値に基づいて

SELECT * FROM records ORDER BY sort_order 

:私はこの単純なクエリを持って

+-----------+--------+----------------+---------+------------+ 
| record_id | record | number_repeats | counter | sort_order | 
+-----------+--------+----------------+---------+------------+ 
|   1 | Value3 |    2 |  0 |   3 | 
|   2 | Value2 |    1 |  0 |   2 | 
|   3 | Value1 |    3 |  0 |   1 | 
|   4 | Value4 |    1 |  0 |   4 | 
+-----------+--------+----------------+---------+------------+ 

:私はこの、レコードテーブルを持っています

+-----------+--------+----------------+---------+------------+ 
| record_id | record | number_repeats | counter | sort_order | 
+-----------+--------+----------------+---------+------------+ 
|   3 | Value1 |    3 |  1 |   1 | 
|   2 | Value2 |    1 |  0 |   2 | 
|   1 | Value3 |    2 |  0 |   3 | 
|   4 | Value4 |    1 |  0 |   4 | 
+-----------+--------+----------------+---------+------------+ 

Afte r カウンタの次のクエリ番号はなどとなります。列番号がの場合、は列番号と同じです。number_repeats値2などを選択する必要があります。

これを行うにはどのような方法が最適ですか?前もって感謝します!

+0

更新my_tableにセットカウンタ=カウンタ+1、レコード= 'VALUE1' はコメントのため – Strawberry

+0

@Strawberry感謝。私は値を増やす方法を知っていますが、 "number_repeats" == "counter"のときに何をすべきか分かりません。たとえば、次のようなものがあります。 'レコードをレコードから選択するWHERE number_repeats!= counter ORDER BY sort_order LIMIT 1' – ManOfHonor

+0

問題は分かりません。 – Strawberry

答えて

0

未テスト:

Update my_table set counter = counter +1 where counter < repeats order by sort_order limit 1; 
関連する問題