MySQL, где IN, а также ищет все, что имеет значение с любым количеством 0, предшествующих ему [дубликата]

0

MySQL, где IN также ищет все, что имеет значение с любым количеством 0, предшествующим ему.

Я пытаюсь сделать

select * 
from table 
where acol IN (1,2,3,4,5);

Я также хотел бы вернуть все, что имеет 001, 0002, 03, 00004 и т.д.

Любая помощь ценится!

  • 1
    Что такое тип данных? Если это числовой тип, ведущих нулей не существует.
  • 1
    Если это символьный тип, WHERE CAST(acol AS DECIMAL) IN ... его к числу: WHERE CAST(acol AS DECIMAL) IN ...
Показать ещё 11 комментариев
Теги:
where

1 ответ

1

Согласно описанию, упомянутому выше, для выполнения сравнения с числовыми значениями, имеющими ведущие нули, если тип данных столбца определяется как целочисленный, то значение, имеющее начальные нули, будет храниться в столбце без начальных нулей и, следовательно, равенство значений в выражение равенства или в выражение IN, где предложение как часть оператора SQL select будет оцениваться как true.

Иначе, если тип данных столбца определяется как varchar, тогда значение, имеющее ведущие нули, будет сохранено в соответствии с его исходным форматом с ведущими нулями в столбец и для выполнения сравнения со значениями, имеющими ведущие нули, вам необходимо использовать как оператор в качестве предложения как часть оператора SQL select. В качестве альтернативы значение столбца varchar может быть введено в целочисленный тип данных с использованием функции MYSQL CAST и при выполнении сравнения с типом casted value в where where в качестве части SQL Select Statement равенство значений будет оцениваться как true.

select *
    from table
where CAST(acol as unsigned) IN (1, 2, 3, 4, 5);
  • 0
    Я смог заставить это работать, используя select * из таблицы, где аккуратный (ведущий '0' от acol) в ('1', '2', '3')
  • 0
    Ответ Рубина действителен. Вы также должны опубликовать свое решение в качестве ответа и позволить другим голосовать. Как только явный лидер, отметьте его как принятый ответ для пользы других, ищущих это в будущем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню