В моем user
таблица у меня есть столбец под названием SeedNumber
который объявлен как INT(11)
, В базе данных MySQL INT
всегда представлен 4 байтами, а число 11 в скобках не означает, что значение INT будет ограничено 11 цифрами. Этот блог хорошо объясняет
Вот объявление MySQL для поля SeedNumber
:
Используя поле SeedNmb
Я хочу получить пользователя. Используется следующий запрос SQL:
SELECT * FROM user WHERE SeedNmb=99999617
В моей таблице значение 99999617 является текущим максимальным значением. Этот запрос возвращает пользователя без проблем, как показано на рисунке ниже:
Недавно новый пользователь зарегистрировался с SeedNumber равным 12561361. Когда я ищу нового пользователя, используя столбец электронной почты в запросе, я получаю следующий результат:
select * from user where email like ("[email protected]");
Вот результат:
Но когда я ищу пользователя с запросом:
SELECT * FROM user WHERE SeedNmb=12561361
Я не получаю никакого результата, и это проблема. Изображение ниже демонстрирует мою проблему:
Кажется, что предложение where почему-то не работает, и пользователь не возвращается как результат.
Значение 12 561 361 не превышает 99 999 617, что является текущим максимальным значением в SeedNumber
Таблица.
Любая помощь будет оценена.
Вы уже пытались поставить число между кавычками?
SELECT * FROM `user` WHERE `SeedNmb` = '12561361';
Попробуйте это в командной строке MySQL ..
Я думаю, что-то не так с вашей IDE.
У меня была такая же проблема, и я исправил ее, воссоздав индекс. Я заметил, что если бы я использовал «лайк» вместо «=», запрос работал бы. План объяснения показал, что индекс использовался только при использовании «=», а не при использовании «подобно», поэтому я удалил и заново создал этот индекс. Запрос снова начал работать.