MySQL запрос возвращает строку 0, если она не соответствует критериям запроса - PullRequest
0 голосов
/ 23 апреля 2011

У меня есть таблица с первичным ключом:

Тип: INT Длина: 11 По умолчанию: NULL Дополнительно: auto_increment

Таблица содержит 3 записи - 0, 1 и 4

Когда я пытаюсь ...

SELECT the_key FROM the_table WHERE the_key='someRandomString'

... он возвращает 1 запись (первичный ключ 0)

Я могу решить это с помощью PHP is_numeric (), но почему нетt возвращает 0 записей?

1 Ответ

2 голосов
/ 23 апреля 2011

Похоже, вы сравниваете столбец int со строковым значением?Похоже, что MySQL преобразует строку в целое число, возвращает 0 и сопоставляет эту строку.

Два варианта:

  1. Не делайте этого.Не пишите сравнения несовместимых типов.
  2. Посмотрите, есть ли у MySQL возможность перейти в более строгий режим, когда он не конвертирует несовместимые типы автоматически.
...