LPAD
La función LPAD rellena una cadena por la izquierda con un carácter o texto específico hasta alcanzar la longitud deseada.
Sintaxis
LPAD(cadena, longitud, relleno)cadena: texto originallongitud: longitud total deseadarelleno: carácter(es) para rellenar
Ejemplo básico
SELECT LPAD('42', 5, '0') AS resultado;| resultado |
|---|
| 00042 |
SELECT LPAD('MySQL', 10, '*') AS resultado;| resultado |
|---|
| *****MySQL |
Formatear IDs con ceros
SELECT
id,
LPAD(id, 6, '0') AS id_formateado
FROM productos
LIMIT 5;| id | id_formateado |
|---|---|
| 1 | 000001 |
| 2 | 000002 |
| 3 | 000003 |
| 4 | 000004 |
| 5 | 000005 |
Códigos de pedido
SELECT
id,
CONCAT('PED-', LPAD(id, 6, '0')) AS codigo_pedido,
estado
FROM pedidos
LIMIT 5;| id | codigo_pedido | estado |
|---|---|---|
| 1 | PED-000001 | completado |
| 2 | PED-000002 | completado |
| 3 | PED-000003 | pendiente |
| 4 | PED-000004 | enviado |
| 5 | PED-000005 | completado |
Relleno con múltiples caracteres
Si el relleno tiene más de un carácter, se repite y trunca:
SELECT LPAD('X', 10, 'ab') AS resultado;| resultado |
|---|
| ababababaX |
Si la cadena es más larga que la longitud
LPAD trunca la cadena por la derecha:
SELECT LPAD('MySQL Tutorial', 5, '*') AS resultado;| resultado |
|---|
| MySQL |
Alinear precios a la derecha
SELECT
nombre,
LPAD(FORMAT(precio, 2), 10, ' ') AS precio_alineado
FROM productos
LIMIT 5;| nombre | precio_alineado |
|---|---|
| iPhone 15 Pro | 1,299.99 |
| MacBook Air M2 | 1,199.99 |
| AirPods Pro | 249.99 |
| iPad Air | 599.99 |
| Apple Watch Series 9 | 399.99 |
LPAD con NULL
SELECT LPAD(NULL, 5, '0') AS resultado;| resultado |
|---|
| NULL |
En el siguiente artículo veremos RPAD para rellenar por la derecha.
Escrito por Eduardo Lázaro
