>  기사  >  데이터 베이스  >  MySQL에서 replacement와 regexp를 이용한 정규식 교체의 활용 분석

MySQL에서 replacement와 regexp를 이용한 정규식 교체의 활용 분석

黄舟
黄舟원래의
2017-03-15 17:17:023967검색

본 글에서는 정규식을 대체하기 위해 MySQL에서 대체 및 정규식의 사용법을 주로 소개하고, 대체 및 정규식 정규식의 사용 기법과 기법을 구체적인 예와 함께 분석한다. 관련 참고 사항이 필요한 친구는

을 참조하세요. 이 기사에서는 MySQL에서 정규식 대체를 위한 대체 및 정규식 사용에 대해 설명합니다. 참고를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

오늘 친구가 데이터베이스에 있는 "./uploads/110100_cityHotel_Beijing Fu Luxury Hotel.jpg"와 유사한 모든 형식을 수정할 수 있는지 물었습니다. "./uploads/110100cityHotelBeijing Fu Luxury Hotel.jpg" 형식입니다. 나는 이런 방식으로 데이터를 처리한 적이 없지만 mysql이 대체를 사용할 수 있고 정규식도 이를 수행할 수 있다는 것을 알고 있습니다.

어떻게 하나요?


코드는 다음과 같습니다.

update master_data.md_employee set name=replace(name,"_",'') where id = 825;

-- 메모 바꾸기 (필드명, "교체할 문자", "교체할 문자") 이게 다입니다.

Mysql에서는 대체와 regexp가 주로 SQL문을 통해 데이터 교체를 구현한다.

먼저 교체의 구체적인 사용법에 대해 이야기해 보겠습니다.

mysql 대체 사용법

1.replace into

코드는 다음과 같습니다.

replace into table (id,name) values('1′,'aa'),('2′,'bb')

함수 이 문의 내용은 테이블에 두 개의 레코드를 삽입하는 것입니다. 기본 키 ID가 1 또는 2이고 존재하지 않는 경우


과 동일합니다. 코드는 다음과 같습니다.

insert into table (id,name) values('1′,'aa'),('2′,'bb')

동일한 경우 값이 존재하면데이터 삽입

2.대체(<a href="http://www.php.cn/wiki/60.html%20" target="_blank">object <code>replace(<a href="http://www.php.cn/wiki/60.html" target="_blank">object</a>,search,replace),search,replace)

object에서 검색 항목을 모두 바꾸기

코드는 다음과 같습니다.

select replace(&#39;www.jb51.net&#39;,&#39;w&#39;,&#39;Ww&#39;)

예: 테이블의 이름 필드에서 aa를 bb

로 바꿉니다. 코드는 다음과 같습니다.

update table set name=replace(name,&#39;aa&#39;,&#39;bb&#39;)

other 패턴 일치를 위해 MySQL에서 제공하는 유형은 확장된 정규식 표현을 사용합니다.

이러한 패턴에 대한 일치 여부를 테스트할 때는 REGEXP 및 NOT REGEXP 연산자 (또는 동의어인 RLIKE 및 NOT RLIKE)를 사용하세요.

정규식을 확장하는 일부 문자는 다음과 같습니다.

· '.'는 단일 문자와 일치합니다.

· 문자 클래스 "[...]"는 대괄호 안의 모든 문자와 일치합니다. 예를 들어 "[abc]"는 "a", "b" 또는 "c"와 일치합니다. 문자 범위의 이름을 지정하려면 "-"를 사용하십시오. "[a-z]"는 모든 문자와 일치하고 "[0-9]"는 모든 숫자와 일치합니다.

· " * "는 앞에 오는 0개 이상의 문자와 일치합니다. 예를 들어, "x*"는 임의 개수의 "x" 문자와 일치하고, "[0-9]*"는 임의 개수의 자릿수와 일치하며, ".*"는 임의 개수의 임의 문자와 일치합니다.

REGEXP 패턴이 테스트 중인 값의 어느 위치와 일치하면 패턴이 일치합니다(이는 전체 값만 일치하는 LIKE 패턴 일치와 다릅니다).

테스트 중인 값의 시작 또는 끝과 일치하도록 패턴을 배치하려면 패턴 시작 부분에 "^"를 사용하거나 패턴 끝 부분에 "$"를 사용하세요. 무늬.

확장 정규식이 어떻게 작동하는지 설명하기 위해 REGEXP 를 사용하여 위에 표시된 LIKE 쿼리를 다시 작성해 보겠습니다.

1. "로 시작하는 것이 무엇인지 알아내기 위해 d "로 시작하는 이름의 경우 "^"를 사용하여 이름의 시작 부분을 일치시킵니다.

코드는 다음과 같습니다.

SELECT * FROM master_data.md_employee WHERE name REGEXP &#39;^d&#39;;

이러한 결과 집합은 대소문자를 구분하지 않습니다. REGEXP를 강제로 적용하려면 BINARY 키워드를 사용하여 문자열 중 하나를 이진 문자열로 만드세요. 이 쿼리는 이름의 첫 글자인 소문자 'd'와만 일치합니다.

코드는 다음과 같습니다.

SELECT * FROM master_data.md_employee WHERE name REGEXP BINARY&#39;^d&#39;;

"love"로 끝나는 이름을 찾으려면 "$"를 사용하여 이름 끝을 일치시킵니다.

코드는 다음과 같습니다.

SELECT id,name FROM master_data.md_employee WHERE name REGEXP &#39;love$&#39;;

"w"가 포함된 이름을 찾으려면 다음 쿼리를 사용하세요.

코드는 다음과 같습니다.

SELECT id,name FROM master_data.md_employee WHERE name REGEXP &#39;w&#39;;

패턴과 일치하는 값의 Anywhere에 정규 표현식이 나타나면 전체 값과 일치하도록 하기 위해 이전 쿼리에서 패턴의 양쪽에 와일드카드를 넣을 필요가 없습니다. SQL 패턴을 사용했습니다.

정확히 5자를 포함하는 이름을 찾으려면 "^" 및 "$"를 사용하여 이름의 시작과 끝을 일치시키고 그 사이에 5개의 "." 인스턴스를 사용하세요.

코드는 다음과 같습니다.

SELECT id,name FROM master_data.md_employee WHERE name REGEXP &#39;^.....$&#39;;

你也可以使用“{n}”“重复n次”操作符重写前面的查询:

代码如下:

SELECT id,name FROM master_data.md_employee WHERE name REGEXP &#39;^.{5}$&#39;;

这些知识一些简单的mysql的replace和regexp的用法,对于深入的学习,我们会在之后的文章会将具体的例子以及用法写出

위 내용은 MySQL에서 replacement와 regexp를 이용한 정규식 교체의 활용 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.