Если country_id
столбец является символ типа данных (не числовой), то вы можете предварять нули и взять самый правый участок:
UPDATE foo SET country_id = RIGHT(CONCATENATE('0000',country_id),4)
UPDATE foo SET country_id = LPAD(country_id, 4, '0')
(ПРИМЕЧАНИЕ. Любой из этих операторов приведет к потере данных, если любое значение country_id
длиннее 4 символов ... первый получает самые высокие символы, второй будет содержать четыре крайних левых символа, если country_id превышает четыре символа , Если значение имеет e - символ «-», это приведет к нечетному взгляду, например. '00 -4' . Функция LTRIM доступна для удаления ведущих пробелов.
Если, с другой стороны, country_id
является числовым типом данных, то вы не можете добавить ведущие нули.
Для целочисленного типа вы можете указать длину отображения и параметр ZEROFILL, например.
country_id INT(4) ZEROFILL
Но это до клиентского приложения, чтобы сделать использование модификатора длины и ZEROFILL атрибута сделать указанное форматирование, есть на самом деле не что-то делается «в базе данных» с этими атрибутами. (Клиент командной строки MySQL будет следить за этими настройками и отображать нулевое значение, равное максимум четырем символам, но другие клиенты не обязаны это делать.)
Вы также можете передать это значение символу и поместить его с ведущими «0» символов в запросе:
SELECT LPAD(country_id, 4, '0') AS country_id
Но обратите внимание, что собирается возвращать тип символов, а не цифровой.
SELECT LPAD (country_id, 5, '0') as country_id FROM table; http://stackoverflow.com/a/3200770/453439 – Colton
Не устанавливать данные, объявить столбец 'INTEGER (4) ZEROFILL' – Wrikken
Да да 'LPAD' :-) – bonCodigo