2011-10-16 1 views
1

이 항목을 가져와야합니다 : "l \'arbre". (0 행이 반환)SQL : LIKE and " '"

SELECT id,nom FROM serie WHERE nom LIKE "%l\'%" 

그러나 그것은 작동하지 않습니다

여기에 내가 만든 한 다양한 요청 중 하나입니다.

하지만이 작동합니다

SELECT id,nom FROM serie WHERE nom LIKE "%\'%" 

사람은 문제의 아이디어가 있습니까?

+0

PHP에서 온 경우? 또는 MySQL 워크 벤치 등에서? – gbn

+0

사람들이 % 와일드 카드가 0 또는 그 이상의 문자라고 말하고 있지만, 이것은 결코 저에게 해당하지 않습니다. 나는 라인의 처음이나 끝에 0 문자를 매치시키는 %를 결코 얻지 못했다. 분명히 내가 빠진 것도있다. – animuson

+1

필드에 "l' ambre"또는 "l \ 'ambre"'가 포함되어 있습니까? –

답변

3

보십시오이 한 다음 DB는 "리터의 \ ' ARBRE"그래서 l\'은하지 않는 l'로 변환의 \는 이스케이프 문자이기 때문에, "%l\'%"가 작동하지 않습니다를 값이있는 경우

nom LIKE "%l\\\\'%" 
+0

예, 작동합니다! 고마워, bye –

+0

그 이중 또는 삼중 탈출인가요? – gbn

1

DB 값에 나타납니다.

LIKE "%\\\\\'%"

\\\\ 하나 슬래시 수단 시도하고 \'는 아포스트로피를 의미한다.

+0

@Mat - right. 감사. – Galz

1

데이터베이스에 'l\'arbre'이 있으므로 쿼리를 ... LIKE "%l\\'%"으로 변경해야합니다. 현재 쿼리에서 백 슬래시는 아포스트로피를 이스케이프하는 문자열 이스케이프 문자로 해석됩니다. 리터럴 백 슬래시로 해석해야하므로 백 슬래시로 이스케이프 처리해야합니다.