2014-09-03 3 views
0

Я пытаюсь запустить этот SQL-запрос:Запросы не возвращаются ни одной строки в MySQL

SELECT * 
FROM `tickets_extra_emails` 
WHERE ticketnumber = '50909' 
    AND email_address = '[email protected]' 

Но его говоря ни одна строка не возвращается, однако, когда я просматриваю таблицу существует несколько строк с указанными значениями

+1

Если запрос возвращает нулевые строки, то есть нулевые строки, которые соответствуют. Возможно, есть какие-то пробелы, которые отбрасывают вещи. Если возможно, попробуйте создать скрипт, который заполнит таблицу фиктивными данными и разместит здесь этот скрипт, показывая запрос, который не сможет вернуть строки против этих фиктивных данных. – cdhowie

+0

Каков тип данных поля 'ticketnumber'? Это действительно тип персонажа, а не число? – Guffa

+0

ticketnumber = varchar (20) – user3843997

ответ

0

Ваш запрос правильный, ни один результат не означает, что у вас нет строки, содержащей именно эти значения. Будьте осторожны при работе с значениями VARCHAR, потому что пробелы, помещенные в начале вашего значения, сделают ваш результат неравным (пробелы в конце не повлияют на равную операцию, но в случае предложения LIKE будут учитываться как начальные, так и конечные пробелы)!

Попробуйте этот запрос:

SELECT * 
FROM `tickets_extra_emails` T 
WHERE TRIM(T.ticketnumber) = '50909' 
    AND TRIM(T.email_address) = '[email protected]' 

Единственная разница с версией запроса является использование TRIM() функции. Эта функция удалит все пробелы, расположенные в начале/конце ваших значений, и это может решить вашу проблему.

У вас по-прежнему нет никакого результата, предоставите нам образец данных, потому что ваша проблема - это наверняка ценности, которые у вас есть в вашей таблице, а не запрос, который вы используете здесь.

Надеюсь, это поможет.

+1

Промежуточные пробелы в конце значений varchar [не учитываются во время тестов равенства] (http://sqlfiddle.com/#!2/bcf622/2), но они * * рассматриваются во время тестов 'LIKE'. Просто хотел прояснить этот момент, поскольку вы утверждаете, что помещенные в конце пространства также вызовут проблемы; только пробелы в начале. – cdhowie

+0

@cdhowie Спасибо за это разъяснение, я завершил свой ответ, чтобы включить ваши отзывы –

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