私はmysqlから値を単純化して与えました。このmaster_course_idの値は、データベースが代替インデックス値を使用してmysql値を取得する
master_course_id register_number
1 A1
1 A2
1 A3
2 B1
2 B2
2 B3
3 C1
3 C2
3 C3
4 D1
4 D2
4 D3
5 E1
5 E2
5 E3
電流出力値
必要な出力のように交互に来るべき
master_course_id register_number
1 A1
2 B1
3 C1
4 D1
5 E1
1 A2
2 B2
3 C2
4 D2
5 E2
1 A3
2 B3
3 C3
4 D3
5 E3
必要な出力
master_course_id register_number
1 A1
2 B1
1 A2
2 B2
1 A3
2 B3
3 C1
4 D1
3 C2
4 D2
3 C3
4 D3
5 E1
5 E2
5 E3
MySQLのクエリ
SELECT register_number
FROM (
SELECT master_course_id, register_number,
@position := IF(master_course_id = @prev_course, @position+1, 1) AS position,
@prev_course := master_course_id
FROM (SELECT * FROM master
WHERE master_course_id IN ('1', '2', '3', '4', '5')
ORDER BY master_course_id, register_number) AS m,
CROSS JOIN (SELECT @position := 0, @prev_course := null) AS vars
) AS t
ORDER BY position, master_course_id
いずれか1つのIDが終了した場合Course_IDに1及び2は、代替的に最初に来る必要があり、それはループべき最後まで同様に次のID 3または4に移動しなければならないことを意味します。つまり、mysqlでこれを達成する方法を教えてください。
HII私は –
はここからアイデアをとっているが更新されますしようとしています –