Vamos a ver cómo rellenar con ceros a la izquierda un campo en una SELECT a base de datos MySQL. Por ejemplo, vamos a consultar el número de comentarios de nuestros visitantes, pero queremos que el resultado devuelto siempre tenga 4 dígitos. Por tanto, para los casos en los que por ejemplo sólo tengan 3 comentarios tendremos que rellenar con ceros a la izquierda devolviendo este valor ‘0003’.
Para rellenar con ceros a la izquierda en MySQL existe la función LPAD. Realmente esta función lo que hace es rellenar con el carácter indicado una cadena hasta que esta tenga la longitud configurada. La función LPAD de MySQL recibe estos parámetros en su llamada:
- Texto: texto original al que se le añadirán a la izquierda X número de caracteres para completar la longitud
- Longitud: longitud final que tendrá la cadena tras añadir los nuevos carateres a la izquierda
- Caracter/es: caracteres que ser van a añadir repetidamente al inicio del texto original hasta alcanzar la longitud indicada
Un ejemplo de uso de la función LPAD sería:
1 |
SELECT LPAD("34",5,'0') FROM DUAL; |
La salida de esta consulta es ‘00034‘, ya que hemos indicado que se debe rellenar con ceros a la izquierda hasta que la cadena tenga 5 caracteres de longitud.
Si se configura una longitud menor que la cadena original, lo que hará será acortala, devolviendo los X primeros caracteres. Por ejemplo esta consulta devolvería ‘35‘:
1 |
SELECT LPAD('35689',2,'0') FROM DUAL; |
También se pueden configurar varios caracteres para rellenar a la izquierda. En este ejemplo hemos probado con añadir ceros, pero también podríamos añadir por ejemplo ‘01010101’ hasta completar la longitud, por ejemplo esta consulta:
1 |
SELECT LPAD("34",20,'01010101') FROM DUAL; |
La consulta anterior devuelve el valor ‘01010101010101010134‘, habiendo rellenado por la izquierda con el patrón indicado hasta completar la longitud indicada.
Para hacer lo mismo pero añadiendo los carateres a la derecha existe la función RPAD. Un ejemplo de su uso sería el siguiente, que devolverá ‘34000‘ ya que ahora estamos rellenado con ceros a la derecha del texto indicado:
1 |
SELECT RPAD("34",5,'0') FROM DUAL; |
Deja tu comentario