Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

문자열의 마지막 쉼표 뒤의 모든 문자를 제거하는 MySQL 쿼리?


문자열의 마지막 쉼표 뒤의 모든 문자를 제거하려면 SUBSTRING_INDEX()를 사용할 수 있습니다.

마지막 쉼표의 위치를 ​​모르는 경우 LENGTH()를 사용하여 동적으로 마지막 쉼표를 찾아야 합니다.

구문은 다음과 같습니다 -

업데이트 yourTableNameset yourColumnName =SUBSTRING_INDEX(yourColumnName, ',',LENGTH(yourColumnName) - LENGTH(REPLACE(yourColumnName, ',', '')));

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> Create table RemoveAllCharacters -> ( -> Id int NOT NULL AUTO_INCREMENT, -> FullInfo varchar(200), -> PRIMARY KEY(Id) -> );쿼리 OK, 영향을 받는 행 0개(1.83초) 

insert 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into RemoveAllCharacters(FullInfo) values('John,Smith,23,98,4565886');Query OK, 영향을 받는 1행(0.23초)mysql> insert into RemoveAllCharacters(FullInfo) values('Carol,Taylor ,26,91');쿼리 확인, 1행 영향(0.28초)mysql> RemoveAllCharacters(FullInfo) 값에 삽입('David,Miller,21');쿼리 OK, 1행 영향(0.11초)mysql> 삽입 RemoveAllCharacters(FullInfo) values('Robert,Jones,22,97');쿼리 확인, 1행 영향(0.09초)mysql> RemoveAllCharacters(FullInfo)values('Sam,Williams,27,88,456788,97877'에 삽입) );쿼리 OK, 1행 영향(0.13초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> Select *from RemoveAllCharacters;

다음은 출력입니다 -

+----+---------------------------------+| 아이디 | 전체 정보 |+----+---------------------------------+| 1 | 존, 스미스, 23,98,4565886 || 2 | 캐롤, 테일러, 26,91 | | 3 | 데이비드, 밀러, 21 || 4 | 로버트, 존스, 22,97 || 5 | 샘,윌리엄스,27,88,456788,97877 |+----+-------------------------------- -+5 행 세트(0.00초)

다음은 string −

의 마지막 쉼표 뒤의 모든 문자를 제거하는 쿼리입니다.
mysql> update RemoveAllCharacters -> set FullInfo =SUBSTRING_INDEX(FullInfo, ',', LENGTH(FullInfo) - LENGTH(REPLACE(FullInfo, ',', '')));쿼리 OK, 5행 영향(0.28초) ) 일치하는 행:5 변경됨:5 경고:0

이제 테이블의 모든 레코드를 다시 한 번 확인하십시오. 쿼리는 다음과 같습니다 -

mysql> Select *from RemoveAllCharacters;

다음은 마지막 쉼표 뒤에 문자가 없는 레코드를 표시하는 출력입니다.

+----+---------------------------+| 아이디 | 전체 정보 |+----+---------------------------+| 1 | 존, 스미스, 23,98 || 2 | 캐롤, 테일러, 26 || 3 | 데이비드, 밀러 || 4 | 로버트, 존스, 22 || 5 | Sam,Williams,27,88,456788 |+----+--------------------------------------------+5행 세트(0.00 초)