Поиск% 20 в базе данных MySQL - PullRequest
1 голос
/ 24 июля 2011

Я пытаюсь найти любые строки, которые содержат% 20 в моей базе данных, через phpmyadmin. Вот мой запрос:

select * from `jos_picmicro_content` where `introtext` like '\%20' escape '\';

За исключением того, что возвращает следующую ошибку:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''\'' at line 1

Что я сделал не так?

Ответы [ 4 ]

5 голосов
/ 24 июля 2011

Вы избежали '. Правильный синтаксис:

select * from `jos_picmicro_content` where `introtext` like '\%20' escape '\\';

Чтобы быстро выявить проблему, разделите ваш запрос на несколько строк, например ::100100

select * from `jos_picmicro_content` 
where `introtext` 
like '\%20' 
escape '\\';

Тогда MySQL предупредит, в какой строке проблема.

2 голосов
/ 24 июля 2011

Это, вероятно, связано с нестандартным использованием MySQL символа \.Но вы можете указать любой символ с ключевым словом ESCAPE:

select * 
from jos_picmicro_content 
where introtext like '@%20' escape '@';

Но это все равно не вернет ничего, кроме строк, где introtext равен точно '%20', вам все еще нужно использовать подстановочный знак, чтобы найти %20 в любом месте этого столбца:

select * 
from jos_picmicro_content 
where introtext like '%@%20%' escape '@';
0 голосов
/ 24 июля 2011

Вы пробовали просто:

выберите * из jos_picmicro_content, где introtext как '% \% 20%'

0 голосов
/ 24 июля 2011

Вы можете удалить часть запроса escape '\';, поскольку экранирующий символ MySQL по умолчанию равен '\'. Но если вам действительно нужна часть escape, вы должны ввести ее как:

escape '\\';

Или

escape '\\\\';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...