2012-05-21 2 views
0

MSQL DB의 텍스트 필드에서 텍스트 데이터의 일부를 검색 할 수 있는지 여부와 궁금증이 있습니다. 내 쿼리 문에서 사용할 수있는 SQL 함수는 무엇입니까?특수 문자를 찾을 때까지 Mysql DB에서 텍스트 필드를 검색하는 텍스트

예 : 아래 보이는 데이터가 포함 된 텍스트 입력란이 있습니다.

(FIRSTNAME1, lastname1,23, DISTRICT1, 상태 1, province1) (FIRSTNAME2, lastname2,23, district2, 상태 2, province2) (FIRSTNAME3, lastname3,23, 디스트릭트, 상태 3, province3) ... 등

내가 예를 들어 제 1 세트를 닫고

")"를 "lastname1"브래킷부터 데이터의 일부를 선택하는 방법 것이다.

나는 이것을 어떻게 할 수 있는지 알기 위해 노력하고 있지만 여전히 실패하고 있습니다. 문제는 텍스트 필드의 모든 데이터를 검색하지 않으려 고합니다 ... MySQL 쿼리 문이 도움이 될지 궁금합니다 ...

이 경우 정규 표현식을 사용하는 것이 좋습니다 제 생각에는,하지만 구조화하는 방법을 모르겠습니다. 새로운 Bi가 ... 적어도이 경우 저를 도우십시오. 사전에 감사합니다.

+0

이는 정규식을 사용하기에 좋은 장소처럼 보인다. 정규식을 만드는 데 문제가있는 경우이 도구를 사용해 보는 것이 어떻습니까 http://txt2re.com/ 정규식을 작성하여 필요한 데이터를 추출하는 데 도움이되는 정규식 생성기입니다. – Tony318

+0

고마워요 토니, 제가 시험해보고 다시 대답하도록하겠습니다. –

답변

3

MYSQL에서도 직접 할 수 있습니다. 이런 식으로 뭔가가 작동합니다 :

SELECT SUBSTR(YOUR_COLUMN, INSTR(YOUR_COLUMN, 'START_CHAR_GOES_HERE') , INSTR(YOUR_COLUMN, 'END_CHAR_GOES_HERE') - INSTR(YOUR_COLUMN, 'START_CHAR_GOES_HERE')) 
FROM YOUR_TABLE 

참조 : http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_substr http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_instr

+0

지금, Alexey, u는 그것을 찍었습니다 ... 그것은 나를 위해 완벽하게 작동했습니다. 감사. –

+0

이 문장은 전체 텍스트를 루핑하고 "lastname1"에서 "()"로 시작하는 텍스트를 선택하는 것과 같은 일을하는 것과 같은 조건의 데이터 부분을 반환하는 방법을 궁금해합니다. ie "lastname1"로 시작하는 가능한 문자열이 두 번 이상있는 경우 ... 미리 감사드립니다. –

1

locate(), substr()char_length()을 mysql에 사용하십시오.

this도 읽어야합니다.

+0

크리스,하지만 char_length() 검색 할 문자열 부분의 길이는 익명, ...... substr() 및 locate(), 나는 시작 위치를 찾으려면 locate() 사용할 수 있다고 생각합니다. 끝 위치를 나타 내기 위해 예를 들어 ")"문자를 식별하지 않으면 끝 위치는 얻기가 어려울 것입니다 ... –

+0

lastname1의 위치 이후에 * 발생하는 닫는 괄호의 첫 번째 발생입니다. locate()는 그 위치를 오프셋으로 취할 수 있습니다. 데이터 자체에 닫는 괄호가 포함될 수있는 경우가 아니면 그 경우에, 나는 당신을 유감스럽게 생각한다 : – goat

+0

쉼표로 구분 된 괄호 쌍의 각 데이터가 특정 필드 아래에있는 괄호로 위의 그림과 같은 형식으로 데이터를 저장할 계획이있다. 하지만 이번에는 데이터베이스의 필드를 차지하기 위해 함께 주차되었습니다. 주요 문제는 괄호 쌍의 데이터 부분이 변경되어 db.please의 각 부분에 대한 특정 필드를 만들 수없는 이유입니다 크리스가 나 한테 더 잘 생각하면 도와 줘. 감사합니다. –

관련 문제