MySQL, где IN также ищет все, что имеет значение с любым количеством 0, предшествующим ему.
Я пытаюсь сделать
select *
from table
where acol IN (1,2,3,4,5);
Я также хотел бы вернуть все, что имеет 001
, 0002
, 03
, 00004
и т.д.
Любая помощь ценится!
Согласно описанию, упомянутому выше, для выполнения сравнения с числовыми значениями, имеющими ведущие нули, если тип данных столбца определяется как целочисленный, то значение, имеющее начальные нули, будет храниться в столбце без начальных нулей и, следовательно, равенство значений в выражение равенства или в выражение 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);
WHERE CAST(acol AS DECIMAL) IN ...
его к числу:WHERE CAST(acol AS DECIMAL) IN ...