No, měl jsem podobný problém s LPAD, bylo to oříznutí čísla na jeho délku podložky. Podle https://dev.mysql.com /doc/refman/8.0/en/string-functions.html#function_lpad je to očekávaný výsledek.
Pokud vidím, nikdo nezmínil odpověď, která vyřešila můj stejný problém:
LPAD(id, GREATEST(LENGTH(id), 4), "0")
Funguje podle očekávání. Vyplní jakékoli id
's kratší než 4 znaky s 0 a vrací nezměněné id
's, které jsou delší než 4 znaky.
Svou odpověď zde nechávám pro ostatní, kteří tuto otázku najdou v budoucnu.