주어진 문자열에서 마지막 부분 문자열의 인덱스를 얻으려면 char_length() 함수를 사용하십시오. 먼저 문자열 길이를 계산하고 전체 길이에서 마지막 하위 문자열 길이를 빼야 합니다. 길이의 차이는 부분 문자열의 인덱스입니다.
구문
구문은 다음과 같습니다 -
select CHAR_LENGTH(yourColumnName) - LOCATE('yourDelimiter ', REVERSE(yourColumnName))+1 as anyVariableName from yourTableName;
위의 구문을 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -
mysql> create table SubStringIndexDemo -> ( -> Words varchar(200) -> ); Query OK, 0 rows affected (0.57 sec)
삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -
mysql> insert into SubStringIndexDemo values('This is MySQL Query'); Query OK, 1 row affected (0.13 sec) mysql> insert into SubStringIndexDemo values('MySQL is a Relational Database'); Query OK, 1 row affected (0.34 sec) mysql> insert into SubStringIndexDemo values('Java is a programming language'); Query OK, 1 row affected (0.11 sec) mysql> insert into SubStringIndexDemo values('Spring is a Framework'); Query OK, 1 row affected (0.20 sec)
select 명령을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from SubStringIndexDemo;
출력
+--------------------------------+ | Words | +--------------------------------+ | This is MySQL Query | | MySQL is a Relational Database | | Java is a programming language | | Spring is a Framework | +--------------------------------+ 4 rows in set (0.00 sec)
다음은 마지막 부분 문자열의 인덱스를 가져오는 데 사용할 수 있는 쿼리입니다::
mysql> select CHAR_LENGTH(Words) - LOCATE(' ', REVERSE(Words))+1 as PositionOfLastSubstring -> from SubStringIndexDemo;
출력
+-------------------------+ | PositionOfLastSubstring | +-------------------------+ | 14 | | 22 | | 22 | | 12 | +-------------------------+ 4 rows in set (0.00 sec)