반응형
마지막 3자리 순서로 주문
다음과 같은 테이블이 있습니다.
id name
--------
1 clark_009
2 clark_012
3 johny_002
4 johny_010
다음 순서로 결과를 얻어야 합니다.
johny_002
clark_009
johny_010
clark_012
이미 시도한 것을 묻지 마십시오. 어떻게 해야 할지 모르겠습니다.
이렇게 하면 가장 오른쪽에 있는 세 개의 문자를 선택하고 해당 값을 오름차순으로 정렬하기만 하면 됩니다.
SELECT *
FROM table_name
ORDER BY RIGHT(name, 3) ASC;
데이터가 증가함에 따라 이는 비효율적인 솔루션이 될 것이라는 점도 덧붙여야 합니다.최종적으로 숫자 부록을 별도의 인덱스 정수 열에 저장하여 정렬을 최적으로 효율적으로 수행할 수 있습니다.
당신은 이것을 먹어봐야 합니다.
SELECT * FROM Table order by SUBSTRING(name, -3);
행운을 빕니다.
MySQL을 사용할 수 있습니다.SUBSTRING()
하위 문자열로 정렬하는 기능
구문:
SUBSTRING(string,position,length)
예: 문자열의 마지막 3자를 기준으로 정렬
SELECT * FROM TableName ORDER BY SUBSTRING(FieldName, -3);
#OR
SELECT * FROM TableName ORDER BY SUBSTRING(FieldName, -3,3);
예: 문자열의 처음 3자를 기준으로 정렬
SELECT * FROM TableName ORDER BY SUBSTRING(FieldName, 1,3);
참고:
Positive
왼쪽에서 오른쪽으로 시작하는 위치/색인Negative
위치/색인은 문자열의 오른쪽에서 왼쪽으로 시작합니다.
SUBSTRING() 기능에 대한 자세한 내용은 다음과 같습니다.
substring_index 함수를 적용하여 다음 값을 구문 분석할 수 있습니다.
select * from table order by substring_index(name, '_', -1)
이름 길이가 가변적인 마지막 세 글자(왼쪽에서 오른쪽)로 정렬하려면 다음을 제안합니다.
SELECT *
FROM TABLE
ORDER BY SUBSTRING (name, LEN(name)-2, 3)
인덱스는 세 번째 마지막 문자인 이름 -2에서 시작합니다.
조금 늦었지만 방금 같은 문제가 생겨서 도움이 되었습니다.
언급URL : https://stackoverflow.com/questions/13732026/order-by-last-3-chars
반응형
'programing' 카테고리의 다른 글
요청 간의 차이점은 무엇입니까?사용자 호스트 주소 및 요청.서버 변수["REMOTE_ADDR"].문자열로() (0) | 2023.08.14 |
---|---|
주어진 컨텍스트에서 레이아웃 인플레이터를 얻는 방법? (0) | 2023.08.14 |
Ajax 응답 로드 상태를 백분율로 표시하는 방법은 무엇입니까? (0) | 2023.08.14 |
이벤트에서 jQuery를 사용하여 클릭한 요소를 가져오시겠습니까? (0) | 2023.08.14 |
Android 화면의 비디오 캡처 (0) | 2023.08.14 |