2012-06-07 4 views
1

У меня есть этот запрос, и я думаю, что это говорит само по себе:Действительно странно ошибка MySQL Query

mysql> select id,email from members where email LIKE "%[email protected]%"; 
+--------+----------------------------+ 
| id  | email      | 
+--------+----------------------------+ 
| 272118 | [email protected] | 
+--------+----------------------------+ 
1 row in set (0.69 sec) 

mysql> select id,email from members where email = "[email protected]"; 
Empty set (0.00 sec) 

mysql> select id,email from members where id = 272118; 
Empty set (0.00 sec) 

Данные есть, но она возвращает пустой, если я использую, кроме как ...

+0

Каков формат столбцов? –

+1

Вы можете показать структуру таблицы? можете ли вы выбрать длину (id), длину (электронную почту) из электронной почты, например ...... ?? – jcho360

+1

Пожалуйста, выведите вывод 'SELECT HEX (email) FROM members WHERE email LIKE" %[email protected]% "'? – eggyal

ответ

3

Когда существует такая вопиющая невозможная последовательность запросов, тогда пришло время подумать о повреждении таблицы (или индекса) и запустить команду Mysql CHECK. В этом случае работает REPAIR TABLE members QUICK.

+0

Спасибо! Это было то, что я сделал – Cito

+0

Почему вы редактируете мой вопрос и удаляете FIXED в названии? – Cito

+0

Читать комментарии haylem: SO не форум, и мы не отмечаем [FIXED] в названии. Этот ответ был сделан с помощью eggyal, и именно по этой причине я сделал его ответом сообщества wiki (для меня не было репутации). –

0

Если идентификатор является varchar, а электронная почта - varchar, они могут иметь окружающие пространства.

+0

Нет, id is int и mail не имеют пробелов – Cito

+0

, даже если у них есть пробелы - используя, например, с% в начале, и делает это неуместным. –

+0

% будет соответствовать пробелам, но без них он не будет совпадать. Но да, если почта не имеет пробелов, то это не подходит –

Смежные вопросы