Ведущие нули в поле 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
представляет любое заполненное нулями поле, которое вы пытаетесь ВЫБРАТЬ.