SQL: LIKE и "'" - PullRequest
       1

SQL: LIKE и "'"

1 голос
/ 16 октября 2011

Мне нужно получить эту запись: " l \ 'arbre ".

Вот один из различных моих запросов:

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

но это не работает (возвращено 0 строк).

Но это работает:

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

Кто-нибудь имеет представление о проблеме?

Ответы [ 3 ]

3 голосов
/ 16 октября 2011

Попробуйте это:

nom LIKE "%l\\\\'%" 
1 голос
/ 16 октября 2011

Поскольку у вас есть 'l\'arbre' в базе данных, вам нужно изменить запрос на ... LIKE "%l\\'%".В вашем текущем запросе обратная косая черта интерпретируется как символ экранирования строки, который экранирует апостроф.Вам нужно, чтобы он интерпретировался как буквальный обратный слеш, а это значит, что вам нужно экранировать его обратным слешем.

1 голос
/ 16 октября 2011

Если БД имеет значение " l \ 'arbre ", "%l\'%" не будет работать, поскольку \ является escape-символом, поэтому l\' переводится в l', что не появляются в значении БД.

Попробуйте LIKE "%\\\\\'%"

Первый \\\\ означает один обратный слеш, а \' означает апостроф.

...