Eh bien, j'ai eu un problème similaire avec LPAD, il tronquait le numéro à sa longueur de pad. Selon https://dev.mysql.com /doc/refman/8.0/en/string-functions.html#function_lpad c'est le résultat attendu.
Autant que je sache, personne n'a mentionné de réponse qui résolvait mon même problème :
LPAD(id, GREATEST(LENGTH(id), 4), "0")
Cela fonctionne comme prévu. Remplit tout id
est inférieur à 4 caractères avec 0 et renvoie un id
inchangé 's contenant plus de 4 caractères.
Je laisse ma réponse ici pour d'autres personnes, qui trouveront cette question à l'avenir.