Е, имах подобен проблем с LPAD, той съкращаваше числото до дължината на подложката. Според https://dev.mysql.com /doc/refman/8.0/en/string-functions.html#function_lpad това е очакван резултат.
Доколкото виждам, никой не спомена отговор, който да реши същия проблем:
LPAD(id, GREATEST(LENGTH(id), 4), "0")
Работи според очакванията. Подпълва всеки id
е по-кратък от 4 знака с 0 и връща непроменен id
които са по-дълги от 4 знака.
Оставям отговора си тук за други хора, които ще намерят този въпрос в бъдеще.