2009-07-25 2 views
0

Это странная проблема. Я обращаюсь к своей онлайн-базе данных, используя премиум-навигацию Navicat для mysql. Некоторые из записей ведут себя очень странно - позвольте привести пример. У меня есть следующие столбцы таблицы: id, имя, адрес, аббревиатура, контакт. Теперь, когда я запускаю sql-запрос, можно сказать, что любая запись с аббревиатурой 'ab' возвращает ноль, но такая запись уже существует в базе данных.Записи видны, но недоступны в MySQL - почему?

Что еще более странно, когда я просматриваю таблицу в navicat - я заметил, что поле аббревиатуры пуста для этого кортежа, который имеет требуемое значение, но когда я наводил на него курсор или выделял его - я могу видеть значение. Его там, но его недоступность, а также это проблема со многими другими кортежами в таблице.

В чем может быть проблема? Я даже попытался удалить и воссоздать таблицу, выполнив файл дампа, но из этого ничего хорошего не вышло. Помогите пожалуйста :(

ответ

1

Убедитесь, что нет никаких невидимых символов в начале строки (например, возврат каретки или что-то).

+0

Хммм есть похоже, является своего рода символом, так как я могу получить запись, если я запускаю запрос select с предложением LIKE '%', но не могу понять, что такое заполненный символ ??? – Ali

+0

@ Али - тайна! Удачи! –

0

Как видно из следующего примера, может быть какой-то хлам дополнительный символ, как A0 и должны быть удалены с помощью обновления.

MySQL> выберите add_code, unhex (замените (шест (add_code), 'A0', '')) от old_new предел 1 \ G

*** ************************ 1. строка *********************** ****

add_code: 000242

unhex (заменить (гекс (add_code), 'А0', '')): 000242

1 строка в наборе (1,32 сек)

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_unhex

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