2014-06-11 2 views
0

나는 다음과 같은 스크립트는내 subselect에게 group_concat에서 시퀀스를 유지하도록 지시하려면 어떻게해야합니까?

이 컬렉션에 함께 문서 번호 및 그룹을의 선택을 얻는 것을 어떻게 작동입니다 http://sqlfiddle.com/#!2/45a17/14

, 이러한 컬렉션은 다음 루프에서 수집하고 준비된 문은 출력 생성 파일을 수집하고 IN 절에서 사용하면 제공된 예제에서 3 개의 파일 컬렉션을 만들었으므로 3 개의 파일을 만들게됩니다. 실제 파일 수는 계산되지만 내 문제와는 관련이 없습니다.

그러나 문제는 내가 소스를 주문해도 시퀀스가 ​​깨지는 것입니다. 1 파일에 대해 순서가 1,4,7,10 ... 1,2,3,4 등이 아닌

이 될 것입니다. 이제는 어떻게 나오는지는 모르겠지만 누군가는 괜찮습니다. 않는 및 순서를 요청한 순서를 요청한 결과, 문서 번호 1-9 한 컬렉션에서 10-18 다음에 있어야 결과를 주어진 그들의 순서를 유지할 수 있도록 최종 쿼리에서 내 subselect 변경할 수 있습니다. -25)

참고 : 그 전에 쿼리는 부속 선택 출력

+1

당신은 GROUP_CONCAT http://stackoverflow.com/questions/995373/mysql-sort-group 내부에'ORDER BY'을 사용할 수 있습니다 보여줍니다 -concat-values ​​ – Uriil

+0

@Uriil은 시퀀스 만 주문하지만 시퀀스는 여전히 끊어져서 여전히 1,2,3,4가 아닌 1,4,7,10을 출력합니다. 링크를 편집하여 순서를 사용하여 시퀀스가 ​​여전히 손상되었음을 보여줍니다. –

답변

1
SELECT * FROM ints; 
+---+ 
| i | 
+---+ 
| 0 | 
| 1 | 
| 2 | 
| 3 | 
| 4 | 
| 5 | 
| 6 | 
| 7 | 
| 8 | 
| 9 | 
+---+ 

SELECT i,FLOOR(i/3)+1 a,i % 3 + 1 b FROM ints; 
+---+------+------+ 
| i | a | b | 
+---+------+------+ 
| 0 | 1 | 1 | 
| 1 | 1 | 2 | 
| 2 | 1 | 3 | 
| 3 | 2 | 1 | 
| 4 | 2 | 2 | 
| 5 | 2 | 3 | 
| 6 | 3 | 1 | 
| 7 | 3 | 2 | 
| 8 | 3 | 3 | 
| 9 | 4 | 1 | 
+---+------+------+ 
관련 문제