2014-04-07 3 views
0

MySQL에서 패턴 매칭의 두 가지 형태가 있습니다.MySQL에서 패턴 매칭의 두 가지 형태의 차이점

  1. SQL 패턴 일치.

사람이 패턴 매칭의이 두 형태 사이의 정확한 차이를 구체적으로 기재 할 수 일치하는 정규식 패턴을 확장? 나는 그것을 많이 봤지만 could'nt 설득력있는 대답을 얻을. 공식 문서도 좋은 대답을주지 못했습니다. 어떤 도움을 크게 할 수

+0

정확도 차이 란 무엇입니까? 분명히 구문 차이가 있지만 이미 알고있을 것입니다. – AgRizzo

+0

[regex from mysql] (http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html)의 매우 빠른 스킴 읽기는 소스 코드의 차이점을 완벽하게 설명했다. – gwillie

답변

0

SQL 패턴 매칭은 "_"(제로 문자를 포함하여) 문자의 임의의 수와 일치하는 모든 단일 문자와 "%"를 맞게 사용할 수 있도록 사전에

감사합니다 감사합니다. MySQL에서 SQL 패턴은 기본적으로 대소 문자를 구분하지 않습니다. 여기에 몇 가지 예가 나와 있습니다. SQL 패턴을 사용할 때는 = 또는 <>을 사용하지 마십시오. 대신 LIKE 또는 NOT LIKE 비교 연산자를 사용하십시오.

LIKE 연산자와 REGEXP 연산자의 중요한 차이점 중 하나는 패턴이 전체 문자열과 일치하면 LIKE 연산자는 True를 반환한다는 것입니다. 예 : where testcolumn LIKE 'jg'는 testcolumn이 jg와 동일한 행만 리턴합니다. 반면에, testcolumn REGEXP 'jg'는 testcolumn이 문자열의 어느 곳에서나 jg를 가지고있는 모든 행을 반환합니다. WHERE testcolumn REGEXP '^ jg $'를 사용하여 jg와 동일한 열만 가져옵니다. WHERE testcolumn LIKE 'jg %'와 (와) 동일한 WHERE testcolumn REGEXP '^ jg'가됩니다. 부분 일치가 받아 들여지므로. *를 정규 표현식의 끝에 넣을 필요가 없습니다 (LIKE의 %에 해당하는 REGEXP).

http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html

+0

'One 중요한 차이 '는 내가 찾고있는 것이었다. 좋은 대답은 문서에서 누락 된 멋진 예제로 설명 되었기 때문입니다. 그로 인해 혼란이 생겨 결국 여기에서 질문을하게되었습니다. 어쨌든, 고마워요 @Mayuri – Shibin

관련 문제