Ваш запрос правильный, ни один результат не означает, что у вас нет строки, содержащей именно эти значения. Будьте осторожны при работе с значениями VARCHAR
, потому что пробелы, помещенные в начале вашего значения, сделают ваш результат неравным (пробелы в конце не повлияют на равную операцию, но в случае предложения LIKE
будут учитываться как начальные, так и конечные пробелы)!
Попробуйте этот запрос:
SELECT *
FROM `tickets_extra_emails` T
WHERE TRIM(T.ticketnumber) = '50909'
AND TRIM(T.email_address) = '[email protected]'
Единственная разница с версией запроса является использование TRIM()
функции. Эта функция удалит все пробелы, расположенные в начале/конце ваших значений, и это может решить вашу проблему.
У вас по-прежнему нет никакого результата, предоставите нам образец данных, потому что ваша проблема - это наверняка ценности, которые у вас есть в вашей таблице, а не запрос, который вы используете здесь.
Надеюсь, это поможет.
Если запрос возвращает нулевые строки, то есть нулевые строки, которые соответствуют. Возможно, есть какие-то пробелы, которые отбрасывают вещи. Если возможно, попробуйте создать скрипт, который заполнит таблицу фиктивными данными и разместит здесь этот скрипт, показывая запрос, который не сможет вернуть строки против этих фиктивных данных. – cdhowie
Каков тип данных поля 'ticketnumber'? Это действительно тип персонажа, а не число? – Guffa
ticketnumber = varchar (20) – user3843997