2010-12-09 10 views
1

내 데이터베이스에는 JS 스크립트를 통해 사용자가 쉽게 편집 할 수 있도록하는 데 사용되는 문자열 패턴이 들어 있습니다. MySQL : 문자열 서식 지정

문자열

는 basicly과 같이 포맷 :

aaa[bbb#ccc]ddd[eee#fff]ggg 

내가 찾고 있어요 결과는 데이터베이스에서 문자열을 선택할 때 내가이 일을하고 싶습니다

aaacccdddfffggg 

입니다. 정규 표현식이 트릭을해야한다고 생각합니다. 하지만 정규 표현식의 주제에 대한 지식은 제한적입니다. 그러나 문제에 대한보다 우아한 해결책이있는 경우에는 이것이 필수 요건은 아닙니다.

답변

1

WHERE 절에 MySQL REGEXP만을 사용하여 값과 일치시킬 수 있습니다. 문자열을 변환하는 데 사용할 수 없습니다.

클라이언트 측에서해야하거나 다른 서버에서 작업해야합니다 (String Functions). 하위 문자열의 길이와 위치가 고정되어 있으면 MID()이 트릭을 수행합니다. 그렇지 않은 경우 []#이라는 특수 문자를 찾으려면 POSITION() (또는 LOCATE())을 사용하십시오.

+0

Hehe, 예! 너의 의도를 알 겠어. 나는 똑바로 생각하고 있지 않았다. 정규 표현식의 어떤 식 으로든 관련이 없습니다. 내 잘못이야. :) POSITION()을 사용하여 시도해 보겠습니다. – dotmartin

+0

@dotmartin : 포맷이 불안정 할 경우 실제로 정규 표현식을 사용하지 않을 것입니다. 괜찮은 프로그래머라면이를 사용하는 방법에 대해 생각할 것입니다. MySQL이 일치시키기 위해서만 사용할 수 있기 때문에 Perl/PHP/Rails/... 코드에서 clientside regexp가 필요합니다. – Konerak

관련 문제