Заполнение начала поля mysql INT нулями
У меня есть поле INT в большой базе данных MySQL, содержащей инкрементные числа в поле INT. Эти числа в настоящее время являются регулярными номерами автоинкремента (1, 2, 3), но мне нужно заполнить их тремя цифрами с нулями в начале (поэтому я получаю 001, 002, 003.. 010, 011 и т. д.).
какие команды я могу запустить в своей базе данных, чтобы изменить этот столбец в нужный мне формат?
2 ответов
вы можете добавить атрибут ZEROFILL в столбец для заполнения данных в базе данных или, при запросе,
SELECT LPAD(CONVERT(`col`,VARCHAR(3)),3,'0')
для восстановления данных в формате 3-значного числа
нет такой вещи, как наличие ведущих нулей в данных в числовом поле в базе данных; данные просто не хранятся таким образом, как и в римских цифрах. Все, что у вас есть, это номер три; поэтому, если вы хотите получить строку "003", у вас есть два варианта:
- изменить, чтобы использовать строковое поле в базе данных: не рекомендуется, потому что вы не можете легко получить инкрементные числа.
- отформатируйте номер по мере его извлечения из базы данных чтобы добавить ведущие нули: лучше, но у него есть свои недостатки - например, сравнения будут медленнее, потому что они не индексируются.