Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

Función SUBSTRING() de MySQL

La función `SUBSTRING()` de MySQL se utiliza para extraer una subcadena de una cadena dada. Te permite especificar la posición inicial y la longitud de la subcadena que quieres extraer.

Utilización

La función `SUBSTRING()` se utiliza habitualmente cuando necesitas recuperar una parte concreta de una cadena para procesar o formatear datos. Ayuda a manipular cadenas cortándolas en segmentos más pequeños.

sql
SUBSTRING(string, position, [length])

En esta sintaxis, `cadena` es la cadena de origen, `posición` es el punto de partida para la extracción (índice basado en 1), y `longitud` es opcional, y especifica cuántos caracteres hay que extraer. Si se omite `length`, la subcadena se extiende hasta el final de la cadena. La `posición` también puede ser negativa, lo que permite que la extracción comience desde el final de la cadena.

Ejemplos

1. Extracción básica de subcadenas

sql
SELECT SUBSTRING('Hello, World!', 8);

Este ejemplo extrae la subcadena a partir del 8º carácter, dando como resultado `'¡Mundo!'`.

2. Extracción con longitud específica

sql
SELECT SUBSTRING('Database Management', 10, 6);

Aquí, la función extrae una subcadena del 10º carácter, que abarca 6 caracteres, dando como resultado `'Manage'`.

3. Utilizar la posición negativa

sql
SELECT SUBSTRING('Hello, World!', -6);

Esto demuestra la extracción a partir del 6º carácter desde el final, lo que da como resultado `'¡Mundo!

4. Manejo de la longitud que excede la longitud de la cadena

sql
SELECT SUBSTRING('MySQL', 3, 10);

Aunque la longitud especificada supere la longitud de la cadena, la función devuelve `'SQL'`, empezando por el 3er carácter hasta el final.

5. Utilizar SUBSTRING() con datos de tabla

sql
SELECT SUBSTRING(customer_name, 1, 5)
FROM customers;

Los 5 primeros caracteres de cada `nombre_cliente` se extraen de la tabla `clientes`, lo que puede ser útil para crear abreviaturas o códigos.

Consejos y buenas prácticas

  • Ten en cuenta las posiciones. Recuerda que el parámetro `posición` está basado en 1, lo que significa que empieza a contar desde 1, no desde 0. También puede ser negativo para iniciar la extracción desde el final de la cadena.
  • Maneja con cuidado la longitud de las cuerdas. Si `length` supera la longitud de la cadena, `SUBSTRING()` devolverá los caracteres restantes sin error.
  • Utilízalo con `CHAR_LENGTH()`. Combínalo con `CHAR_LENGTH()` para determinar dinámicamente longitudes y posiciones para operaciones de subcadena más flexibles.
  • Vigila los valores NULL. Si la `cadena` es `NULL`, `SUBSTRING()` devolverá `NULL`. Considera la posibilidad de utilizar `CASE` o `IFNULL()` para tratar posibles nulos, como:
    sql
      SELECT IFNULL(SUBSTRING(name, 1, 5), 'N/A') FROM users;
      
  • Piensa en `SUBSTRING_INDEX()`. Utiliza `SUBSTRING_INDEX()` cuando trabajes con delimitadores en cadenas para extraer subcadenas basándote en un recuento de delimitadores especificado.
  • Consideraciones sobre el rendimiento. Ten cuidado al utilizar `SUBSTRING()` en conjuntos de datos grandes o en consultas complejas, ya que puede afectar al rendimiento.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis