database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29508 게시물 읽기
No. 29508
치환 쿼리문 꼭좀 알려주시면 감사드리겠습니다.
작성자
누에고치
작성일
2010-01-15 15:57
조회수
6,321

좀 부탁드립니다.

 

1번 레코드  111은 1112 보다작다

2번 레코드 111은 111 와 같다

3번 레코드 111은 1113보다 작다


문제: 111을 222로 치환 하면
 

1번 레코드  111은 2222 보다작다

2번 레코드 222은 222 와 같다

3번 레코드 222은 2223보다 작다

이렇게 변경됩니다.

정확히 111인것만 변경되게 하는 방법좀 알려주세요.  1112는 변경되지 않도록
그럼 꼭좀 부탁드립니다.
감사합니다.

이 글에 대한 댓글이 총 3건 있습니다.

스크립트 언어에서 정규표현식을 이용한 처리를 한다면 가능하리라 생각됩니다.

MySQL에서 regex를 포함하고 있기는 하지만, 해당 매칭이 서브셋이 있느냐 없느냐만 알려주기 때문에, 말씀하신 것과 같은 정교한 처리는 불가능할 것 같습니다. 

박현우(lqez)님이 2010-01-19 07:57에 작성한 댓글입니다.

instr()과 length()를 조합하면 간단히 해결될 거 같습니다.

게스트13번님이 2010-01-19 17:43에 작성한 댓글입니다. Edit

MySQL 문자열 함수인 instr과 length만으로는 저는 못하겠더군요... 방법이 있으시면 공유했으면 좋겠습니다 ^^

아래는 제가 preg_replace로 구현해본 예제와 결과입니다. 참고하세요.

*  실행 결과

source:111 2111 1112is 111 111A a111b 1111 11111 a111 한글도111 잘 111되나요 111
result:222 2111 1112is 222 222A a222b 1111 11111 a222 한글도222 잘 222되나요 222
 

* 스크립트 소스

<?
$string = '111 2111 1112is 111 111A a111b 1111 11111 a111 한글도111 잘 111되나요 111';
 
$pattern = array(
    '/^(111)([^0-9]+)/',
    '/([^0-9]+)(111)([^0-9]+)/',
    '/([^0-9]+)(111)$/'
);
$replace = array(
    '222${2}',
    '${1}222${3}',
    '${1}222'
);
 
echo "source:".$string."\n";
$string = preg_replace( $pattern, $replace, $string ); // first phase
$string = preg_replace( $pattern, $replace, $string ); // second phase
echo "result:".$string."\n";
?>
 

박현우(lqez)님이 2010-01-20 00:05에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
29511서브쿼리 속도 [1]
궁금이
2010-01-19
7046
29510쿼리문과 서버튜닝 질문입니다. [1]
고재철
2010-01-16
7057
29509MYSQL이 중단된 경우... [2]
송기창
2010-01-15
6006
29508치환 쿼리문 꼭좀 알려주시면 감사드리겠습니다. [3]
누에고치
2010-01-15
6321
29507일반로그 갱신 질문입니다. [2]
방방방
2010-01-14
6713
29506로또 통계를 할려고 하는데요 번호별 당첨결과 횟수 ㅠㅠ1 [1]
김중일
2010-01-14
7129
29505Mysql 재시작때 auto_increment... [1]
한성무
2010-01-13
6703
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다