2009-12-16 4 views

답변

22

난 당신이 "PDD는"처음에 어디를 제외한 "PDD"를 일치하는 모든 행을 의미하는 가정합니다.

SELECT * FROM table WHERE column LIKE '_%pdd%'. 

LIKE 술어의 "_"와일드 카드는 정규 표현식에서 "."에 해당하는 "모든 문자 중 하나"를 의미한다.

+0

죄송합니다. 'pdd hello pdd'와 같은 경우에는 처음 p가'_'와 일치하고 나머지 문자열 (''pdd ''를 포함하여)은'% pdd %'와 일치하기 때문에 작동하지 않습니다. OP는 "pdd"문자열이 항상 문자열 사이에서 고유 할 것이라는 점을 결코 언급하지 않았으므로, 그 중 하나가 시작 부분에있는 여러 개의 오류가 작동하지 않을 것입니다. OP,이 대답을 받아들이지 않는 것을 고려해보십시오 (정확하지 않으므로). quosoo 또는 Marc의 답변을 수락하십시오. – DiegoDD

+0

@DiegoDD, 좋은 지적입니다. 패턴이 두 번 나타날 가능성을 간과했습니다. 이것은 오래된 질문입니다.이 문제에 관해서는 OP에서 듣고 싶습니다. 그러나 그가 그것을 받아 들여서, 나는 그가 필요한 경우에 효과가 있다고 가정 할 것이다. –

+0

나는 OP가 유용하다는 것을 알았고 아무런 문제가 없었다는 사실에 동의하지만이 사이트는 커뮤니티 사이트이므로 다른 사람들이 그럴 가능성이 높기 때문에 답변을 편집하여 위와 같은 경우에는 작동하지 않는다고 말할 수 있습니다. 대답을 찾으십시오 (제가했던 것처럼). 그리고 오래된 질문이 덜 유용하거나 유효하지 않게 만듭니다. 답장을 보내 주셔서 감사합니다. – DiegoDD

0

시도 :

SELECT * FROM table WHERE column NOT LIKE 'pdd%' 
+1

OP는 열의 시작 부분을 제외하고 'pdd'와 일치하는 것으로 보입니다.이 작업은 수행되지 않습니다 ... –

+0

독해력에 대해 –

5

내가 당신의 요구 사항을 이해한다면 정확하게 당신이 필요로하는 무엇을 :

SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%' 
4
SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%' 

당신은이 사건이 테이블에 얼마나 자주에 따라 쿼리를 최적화 할 수 있습니다.