Ведущие нули в поле mysql zerofill int не отображаются при запросе

У меня есть таблица с автоматическим приращением нуля заполнения идентификационных номеров. Когда я запрашиваю данные, идентификаторы теряют свои ведущие нули (т. Е. "000529" возвращается как "529"). Есть ли способ сохранить лидирующие нули или даже сгенерировать их обратно в запросе? Я знаю, что могу генерировать их обратно в PHP, используя STRPAD, но для конкретного проекта, в котором я работаю, я бы хотел получить данные, как они есть в БД.

1 ответ

Используйте функцию LPAD(), чтобы показать числа (слева), дополненные нулями:

SELECT LPAD( 529, 6, '0') AS padded;

Именно часть UNION ALL преобразует их в INT - я еще не нашел простого решения. На мой взгляд, это ошибка mySql.

Когда вы выбираете поле с ведущими нулями и используете UNION, оно удаляет ведущие нули.
Я нашел обходной путь, добавив:

CONVERT(id_number,char) as id_number

Очевидно, id_number представляет любое заполненное нулями поле, которое вы пытаетесь ВЫБРАТЬ.

Другие вопросы по тегам