[sql] SQLite-문자열의 일부 교체

테이블 SQL에서 사용하여 SQLite문자열의 일부를 바꿀 수 있습니까?

예를 들어, 필드 중 하나에 파일 경로가있는 테이블이 있습니다. 예를 들어 문자열의 일부를 교체 할 수 있습니까?

c:\afolder\afilename.bmp

된다

c:\anewfolder\afilename.bmp

?



답변

내장 replace()함수를 사용하여 쿼리에서 문자열 바꾸기를 수행 할 수 있습니다.

기타 문자열 조작 함수 (및 기타)는 SQLite 핵심 함수 목록에 자세히 설명되어 있습니다.

다음은 올바른 방향을 가리켜 야합니다.

UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\' ) WHERE field LIKE 'C:\afolder\%';


답변

@Andrew 답변은 부분적으로 정확합니다. WHERE여기에 절 을 사용할 필요가 없습니다 .

  1. C:\afolder어쨌든 포함 된 필드 만 영향을받으며 확인할 이유가 없습니다. 과도합니다.
  2. 'C:\afolder\%'로 시작하는 필드 만 선택합니다 C:\afolder\. 문자열 안에이 경로가 있으면 어떨까요?

따라서 올바른 쿼리는 다음과 같습니다.

UPDATE table SET field = replace( field, 'C:\afolder\', 'C:\anewfolder\');


답변

지속적인 결과없이 쿼리에서 수행하려는 경우 :

SELECT fieldA, replace(field, 'C:\afolder\', 'C:\anewfolder\'), fieldB FROM table;


답변