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

MySQL은 정규 표현식으로 업데이트할 수 있습니까?

<시간/>

regexp로 업데이트할 수 없습니다. 즉, regexp 대신 LIKE 연산자를 사용해야 합니다. MySQL은 regexp로 업데이트를 지원하지 않습니다. LIKE 연산자는 다음과 같습니다.

업데이트 yourTableName SET yourColumnName=REPLACE(yourColumnName,yourValue)', '' )WHERE yourColumnNameLIKE '%yourValueThatWillReplace)%';

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다.

mysql> create table Replace_Demo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Value varchar(20), -> PRIMARY KEY(Id) -> );쿼리 OK, 영향을 받는 행 0개(0.62초) 

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

mysql> insert into Replace_Demo(Value) values('221)');Query OK, 1개의 row가 영향을 받습니다(0.22초)mysql> insert into Replace_Demo(Value) values('321');Query OK, 1개의 row가 영향을 받습니다. (0.24초)mysql> Insert into Replace_Demo(Value) values('354)');Query OK, 1개의 행이 영향을 받습니다(0.18초)mysql> insert into Replace_Demo(Value) values('223)');Query OK, 1 영향을 받는 행(0.09초)mysql> Replace_Demo(Value) values('446')에 삽입, 쿼리 확인, 1행이 영향을 받음(0.13초)

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

mysql> select *from Replace_Demo;

다음은 출력입니다.

+----+-------+| 아이디 | 값 |+----+-------+| 1 | 221) || 2 | 321 || 3 | 354) || 4 | 223) || 5 | 446 |+-+-------+5행 세트(0.00초)

다음은 정규 표현식 대신 LIKE 연산자로 업데이트하는 쿼리입니다.

mysql> update Replace_Demo set Value =REPLACE(Value,'221)', '' ) -> WHERE Value like '%221)%';Query OK, 영향을 받는 행 1개(0.21초) 일치하는 행:1 변경됨:1 경고:0

이제 select 문을 사용하여 테이블 레코드를 다시 한 번 확인하십시오. 쿼리는 다음과 같습니다.

mysql> select *from Replace_Demo;

다음은 출력입니다.

+----+-------+| 아이디 | 값 |+----+-------+| 1 | || 2 | 321 || 3 | 354) || 4 | 223) || 5 | 446 |+-+-------+5행 세트(0.00초)