[SQL] 그 조각하여 문자열의 조각 순서를 선택 MYSQL
SQL그 조각하여 문자열의 조각 순서를 선택 MYSQL
나는 정보의 이런 종류의 필드가 "웹-1 / 1, 웹-2 / 2, 웹-3 / 3, 웹-4 / 4, 웹 / 5.". 다른 레지스터는 "웹-1 / 4, 웹 (2) / 제 웹-3 / 1 웹-4 / 2, 웹-5 / 3."와 같은 다른 값을 가질 수도
내가 선택하고 싶은 순서는 말 웹-2 /를 할 수 있습니다? 웹-2 / 1 마지막 번호로 웹-2와 순서를 포함하는 모든 필드에 웹-2 / 2, 웹-2 / 3 등이 될 것입니다
나는 특집 매물 스크립트 다른 웹 사이트를 만들고 기능 번호를 지정합니다. 다른 특성, 다른 웹 사이트 다른 순서
해결법
-
==============================
1.난 당신이 MySQL의 문자열 함수보고 더 구체적으로 SUBSTRING_INDEX 기능 제안했다. 전 또는 슬래시 뒤의 숫자가 두 번째 부분은 다를 최초 및 / 또는 길이를 만들 수있는 하나의 숫자보다 더 많은 수 있기 때문에 내가 SUBSTRING 동안이 일을 제안하는 이유입니다.
난 당신이 MySQL의 문자열 함수보고 더 구체적으로 SUBSTRING_INDEX 기능 제안했다. 전 또는 슬래시 뒤의 숫자가 두 번째 부분은 다를 최초 및 / 또는 길이를 만들 수있는 하나의 숫자보다 더 많은 수 있기 때문에 내가 SUBSTRING 동안이 일을 제안하는 이유입니다.
예:
SELECT `info`, SUBSTRING_INDEX(`info`, '/', 1) AS `first_part`, SUBSTRING_INDEX(`info`, '/', -1) AS `second_part` FROM `table` ORDER BY `first_part` ASC, `second_part` ASC;
결과:
추가 예
이 예제에서, 나는 그것이 같은 기호 나 문자 등의 추가 문자가 포함 된 경우를 대비 부호없는 정수로 두 번째 부분을 변환 할 CAST를 사용하고 있습니다. 즉, 두 번째 부분 "웹 15분의 4." "15"과의 두 번째 부분 일 것이다 "웹-4 / 15 ****"은 "15"이 될 것이다.
SELECT `info`, SUBSTRING_INDEX(`info`, '/', 1) AS `first_part`, CAST(SUBSTRING_INDEX(`info`, '/', -1) AS UNSIGNED) `second_part` FROM `table` ORDER BY `first_part` ASC, `second_part` ASC;
-
==============================
2.문자열이 항상 당신이 설명 된 패턴과 일치하는 경우, 우리는 당신이에 정렬 할 첫 번째 값이 문자열 (왼쪽에서 5 자)의 인덱스 위치 5라고 가정 할 수있다. 두 번째 문자는 문자열의 웹-2 / 1 '필드라는 이름의 필드에 있음을 가정하고, 마음에, 당신은 다음을 수행 할 수와 인덱스 7.이다 :
문자열이 항상 당신이 설명 된 패턴과 일치하는 경우, 우리는 당신이에 정렬 할 첫 번째 값이 문자열 (왼쪽에서 5 자)의 인덱스 위치 5라고 가정 할 수있다. 두 번째 문자는 문자열의 웹-2 / 1 '필드라는 이름의 필드에 있음을 가정하고, 마음에, 당신은 다음을 수행 할 수와 인덱스 7.이다 :
SELECT `field` FROM `table` ORDER BY substr(`field`, 5, 1) ASC, substr(`field`, 7, 1) ASC;
SUBSTR () 함수는 첫 번째 옵션, 우리는 위에서 언급 한 인덱스 및 두 번째 옵션에서 시작 포함 할 수있는 문자의 수입니다 옵션 세 번째 매개 변수로 필드를 취할.
문자열이 약간 꺼져있는 경우 중요한 것은이 subtr () 함수에서 두 번째 옵션 인, 필요에 따라이를 조정할 수 있습니다.
-
==============================
3.그냥 추가 ... ORDER를 SUBSTRING에 의해 (사용자 이름, 2) ASC
그냥 추가 ... ORDER를 SUBSTRING에 의해 (사용자 이름, 2) ASC
-
==============================
4.나는이 작업을 수행 할 것
나는이 작업을 수행 할 것
SELECT info FROM table WHERE info LIKE 'web-2%' ORDER BY info ASC
from https://stackoverflow.com/questions/6475936/mysql-select-a-piece-of-a-string-and-order-by-that-piece by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 앱 엔진 자바 서블릿은 클라우드 SQL에 연결되지 않습니다 (0) | 2020.06.14 |
---|---|
[SQL] PostgreSQL의 9.3을 사용하여 CTE UPSERT에 DEFAULT 값을 생성 (0) | 2020.06.14 |
[SQL] SQL은 where 절에 열 별칭을 인식하지 (0) | 2020.06.14 |
[SQL] 문자열로 안전 SQL 문 만들기 (0) | 2020.06.14 |
[SQL] SQLSRV 및 사용 PHP에서 저장 프로 시저를 실행하는 방법 "을?" 스타일의 매개 변수 (0) | 2020.06.14 |