2013-11-09 3 views
0

Эта ошибка впервые возникла в php-функции, но через некоторое время устранения неполадок я получаю одинаковые результаты в phpmyadmin.SQL не соответствует строке

У меня есть простой оператор SQL SELECT * FROM tbl_movie WHERE title= "movie"

И я ничего не вернулся, я копирования и вставки (также пытались ввести его в) из таблицы. Поэтому должен быть матч. Пробовал это со многими значениями, которые должны работать, одинаковым результатом (0 строк вернулись).

Как ни странно SELECT * FROM tbl_movie WHERE title LIKE "%movie%". Вернул желаемую строку.

Что здесь происходит?

Редактировать: Я пробовал все, что могу придумать, чтобы сорвать возможность пробелов. Результаты Sae: пробелы на каждой/с обеих сторон, предметы с/без пробелов.

+2

Можете ли вы показать строку? Любое белое пространство вокруг него или других символов? – wazy

+0

Возможно, у вас есть пробел или какой-либо другой символ в строке, которую вы ищете? – dnapierata

ответ

3

Вы должны попробовать одинарные кавычки, а не двойные кавычки.

Если вы получаете те же результаты, вероятно, есть пробел до или после слова «фильм» в этой колонке. Попробуйте это, чтобы понять это. ЕСЛИ длина - это нечто иное, чем 5, это ваше объяснение.

SELECT LENGTH(title), HEX(title), title 
    FROM tbl_movie 
    WHERE title like '%movie%' 
+0

Итак, я попробовал это, и он вернул 6 как длину вместо 5. Но я попробовал запрос с пробелами с каждой стороны. – dan08

+0

Это означает, что есть какой-то непередаваемый персонаж до или после слова «фильм». Этот персонаж не должен быть пространством. –

+0

Попробуйте 'SELECT HEX (title), title'. Вы получите шестнадцатеричный дамп символа в названии. Это может помочь вам понять характер мусора. –

0

Пожалуйста, проверьте этот код:

SELECT * FROM `tbl_movie` WHERE `title` LIKE '%"movie"%' 

Смотрите "" и изменить для 'или `.

Иногда одиночные и двойные кавычки являются проблемами при выполнении поиска в mysql.

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