2016-05-14 93 views
0

在這種情況下,我需要您的幫助。我有這個記錄表:MySQL根據另一列中的數字選擇值X次

+-----------+--------+----------------+---------+------------+ 
| 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 | 
+-----------+--------+----------------+---------+------------+ 

我有這個簡單的查詢:

SELECT * FROM records ORDER BY sort_order 

排序我需要一個表經過這麼選擇值1和列更新值計數器後將有這樣的看法:

+-----------+--------+----------------+---------+------------+ 
| 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,其中記錄= '值1' – Strawberry

+0

@Strawberry感謝您的評論。我知道如何遞增價值,但我不知道我應該如何處理「number_repeats」==「counter」。例如這樣的事情: 'SELECT記錄FROM記錄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; 
相關問題