어느 날, QQ 서클에 속한 한 네티즌이 도움을 요청하는 메시지를 보냈습니다.
PropID 이름 금액
3 Yuanbao 2
2 Ledou 3
출력을 SQL로 작성할 수 있습니까? 즉, 금액에 해당하는 항목 수를 복사할 수 있습니다:
PropID 이름
3 Yuanbao
3 Yuanbao
2 Ledou
2 Ledou
2 Le Dou
[참고]:
3 Yuanbao 2
참고 마지막 열이 2개, 즉 2개의 레코드가 있어야 합니다.
3 Yuanbao
3 Yuanbao
가 되어야 합니다. 행이 반복되므로 이 예에 따르면 2 Le Dou 3, 다음과 같이 3개의 레코드를 반복해야 합니다.
2 Le Dou
2 Le Dou
2 Le Dou
좀 더 조사해본 결과, 경우에 따라 일반 그룹을 사용하여 계산할 수 없어서 마음을 바꿔야 했습니다. 잠시 통화가 끊겼는데, 디지털 보조테이블 아이디어를 주신 네티즌 W씨와 통화를 하게 되었습니다.
좋아요, 완료되었습니다. SQL은 다음과 같습니다.
tb t1에서 t1.propid,t1.name을 선택합니다(num Union으로 1 선택, num Union으로 2 선택, num으로 3 선택). t2 where t1.amount>= t2.num 1씩 정렬
middle,(num 조합으로 1 선택, num로 2 선택) Union select 3 as num ) t2 부분
또 다른 num 단일 열 보조 테이블을 생성하고 1에서 N으로 증가시킨 후 수만 개를 제공하는 것이 가장 좋습니다. 관련 쿼리가 더 편리할 것입니다. 자체 연결의 SQL로 판단하면 select에는 루프에서 숫자를 생성하는 기능이 없는 것 같습니다. 다음 표와 같이 nums
여기를 보시고 더 좋은 구현 방법이 있는 친구들, 공유해주세요.
위 내용은 숫자 보조 테이블을 이용하여 복잡한 컬럼 변경을 구현한 MySQL의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!