[SQL] 여러 문자를 대체 MYSQL 수 있습니까?
SQL여러 문자를 대체 MYSQL 수 있습니까?
나는 MySQL의 필드에 문자의 무리를 대체하기 위해 노력하고있어. 나는 바꾸기 기능을 알고 있지만 한 번에 하나의 문자열을 대체합니다. 나는 설명서에 적절한 기능을 볼 수 없습니다.
나는 교체하거나 한 번에 여러 문자열을 삭제할 수 있습니까? 예를 들어 내가 대시와 공백을 대체하고 다른 문장 부호를 제거해야합니다.
해결법
-
==============================
1.당신은 체인 기능을 대체 할 수
당신은 체인 기능을 대체 할 수
select replace(replace('hello world','world','earth'),'hello','hi')
이 안녕 지구를 인쇄합니다.
당신은 여러 문자열을 대체하는 하위 쿼리를 사용할 수 있습니다!
select replace(london_english,'hello','hi') as warwickshire_english from ( select replace('hello world','world','earth') as london_english ) sub
아니면 그들을 대체하는 조인을 사용 :
select group_concat(newword separator ' ') from ( select 'hello' as oldword union all select 'world' ) orig inner join ( select 'hello' as oldword, 'hi' as newword union all select 'world', 'earth' ) trans on orig.oldword = trans.oldword
나는 독자들에게 운동으로 공통 테이블 표현식을 사용하여 번역을 떠날거야;)
-
==============================
2.캐스 케이 딩 여러 문자 교체에 대한 MySQL의 유일한 단순하고 직선적 솔루션입니다.
캐스 케이 딩 여러 문자 교체에 대한 MySQL의 유일한 단순하고 직선적 솔루션입니다.
UPDATE table1 SET column1 = replace(replace(REPLACE(column1, '\r\n', ''), '<br />',''), '<\r>','')
-
==============================
3.나는 당신을 허용하는이에 대한 lib_mysqludf_preg을 사용했습니다 :
나는 당신을 허용하는이에 대한 lib_mysqludf_preg을 사용했습니다 :
이 라이브러리를 설치하면이 뭔가를 할 수 있습니다 :
SELECT preg_replace('/(\\.|com|www)/','','www.example.com');
당신을 줄 것이다 :
example
-
==============================
4.그들은 문자열에 나타나는 모든 곳에서 교체 문자 나 문구를 대체하는 좋은 간단한 작업을 수행합니다. 문장 부호를 정화 할 때하지만 패턴을 볼 필요가 있습니다 - 예를 텍스트, 예를 들어 특정 부분에 공백의 시퀀스 또는 자 단어의 중간에 또는 완전 정지 후. 그런 경우, 정규 표현식은 함수가 훨씬 더 강력 할 것이다 교체합니다. 나쁜 소식은 MySQL이 그런 일을 제공하지 않습니다하지만 좋은 소식은 해결 제공하는 것이 가능하다 -이 블로그 게시물을 참조하십시오.
그들은 문자열에 나타나는 모든 곳에서 교체 문자 나 문구를 대체하는 좋은 간단한 작업을 수행합니다. 문장 부호를 정화 할 때하지만 패턴을 볼 필요가 있습니다 - 예를 텍스트, 예를 들어 특정 부분에 공백의 시퀀스 또는 자 단어의 중간에 또는 완전 정지 후. 그런 경우, 정규 표현식은 함수가 훨씬 더 강력 할 것이다 교체합니다. 나쁜 소식은 MySQL이 그런 일을 제공하지 않습니다하지만 좋은 소식은 해결 제공하는 것이 가능하다 -이 블로그 게시물을 참조하십시오.
상기 정규식 대체물의 조합으로 달성 될 수있는 표준 기능을 교체한다. 그것은이 온라인 Rextester 데모의 행동에서 볼 수 있습니다.
SQL (간결을위한 기능 코드 제외) :
SELECT txt, reg_replace(REPLACE(txt, ' ', '-'), '[^a-zA-Z0-9-]+', '', TRUE, 0, 0 ) AS `reg_replaced` FROM test;
-
==============================
5.PHP에
PHP에
$dataToReplace = [1 => 'one', 2 => 'two', 3 => 'three']; $sqlReplace = ''; foreach ($dataToReplace as $key => $val) { $sqlReplace = 'REPLACE(' . ($sqlReplace ? $sqlReplace : 'replace_field') . ', "' . $key . '", "' . $val . '")'; } echo $sqlReplace;
결과
REPLACE( REPLACE( REPLACE(replace_field, "1", "one"), "2", "two"), "3", "three");
from https://stackoverflow.com/questions/1671040/can-mysql-replace-multiple-characters by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] PostgreSQL는 테이블 함수에서 주문 / 제한 파라미터 (0) | 2020.04.07 |
---|---|
[SQL] 어떻게 마이크로 소프트 SQL 서버의 순서를 구현하는 것이? (0) | 2020.04.07 |
[SQL] 계산은 PostgreSQL의 2 날짜 사이의 근무 시간 (0) | 2020.04.07 |
[SQL] 그 콤바인 두 배열의 PostgreSQL에 우편 () 함수와 같은 뭔가인가? (0) | 2020.04.07 |
[SQL] Excel로 내보내기 SQL 쿼리 데이터 (0) | 2020.04.07 |