MySQL은 숫자 보조 테이블을 사용하여 복잡한 열 변경 및 행을 구현합니다.

黄舟
풀어 주다: 2017-02-17 13:12:54
원래의
1444명이 탐색했습니다.

어느 날, 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)를 참고해주세요!


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿