2013-11-20 3 views
1

Я пробовал делать это на PHP, но я все время возвращал 0 строк. Затем, после некоторого времени поиска в StackOverflow, я увидел подсказку, чтобы попытаться сделать это в SQL сначала, чтобы проверить, правильно ли возвращены результаты.MySQL, возвращающий пустой набор результатов

Я попытался сделать это в SQL, и он возвращает пустой набор результатов все время, даже если значения есть.

SQL

SELECT * FROM `serials_table` WHERE `ser_key`='ABCD-EFGH-IJKL-MNOP' 

PHP

$result = $link->query("SELECT * FROM serials_table WHERE ser_key='$key'"); 

Оба возвращаются нулевое значение.

колонка ser_key устанавливается в текстовом виде, coallition: utf8_unicode_ci, Null: Нет, по умолчанию: Нет

Серийный ключ запись там и столбец «ser_key» существует, а также таблицы «serials_table». Также я напрямую копировал серийный ключ из таблицы и помещал его в запрос, чтобы избежать опечаток.

Я сделал некоторые ошибки со структурой таблицы или чем-то еще?

Я понятия не имею, что делать здесь, любая помощь будет оценена по достоинству.

+0

Попробуйте 'SELECT * FROM serials_table WHERE ser_key like '% ABCD-EFGH-IJKL-MNOP%'', чтобы узнать, есть ли проблема с обрезкой –

+0

. Проверьте, есть ли скрытые пространства в поле значений столбца 'ser_key' , Например, '' ABCD-EFGH-IJKL-MNOP '' – vonUbisch

+0

@juergend Да, он работает сейчас. Как я могу избежать повторения этой проблемы? Кроме того, вы могли бы опубликовать это как ответ, чтобы я мог отметить его как решение? Большое спасибо! –

ответ

1

Когда это работает

SELECT * FROM serials_table WHERE ser_key like '%ABCD-EFGH-IJKL-MNOP%' 

Тогда вы начальные и конечные пробелы в данных.

Для возврата, которые обновляют существующие данные таблицы, как этот

update serials_table 
set ser_key = trim(ser_key) 

После этого проверки, где вы вставить или обновить ser_key. В этом сегменте кода проверьте, помещены ли там только обрезанные данные.

1

Попробуйте

SELECT * FROM `serials_table` WHERE TRIM(`ser_key`)='ABCD-EFGH-IJKL-MNOP' 

Удалить пробелы

UPDATE `serials_table` set `ser_key`= TRIM(`ser_key`); 
+0

Я собирался сказать TRIM вход – AdRock

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