mysql substring substring_index functions with examples
Obtenga información sobre las funciones SUBSTRING y SUBSTRING_INDEX de MySQL y su uso con varios ejemplos:
La función de subcadena de MySQL se utiliza para extraer una subcadena o una parte de la cadena contra la cadena de entrada. Como sugiere el nombre, la función Substring opera en una cadena de entrada y devuelve una subcadena más pequeña contra las opciones especificadas.
También aprenderemos sobre otra variante de SUBSTRING llamada SUBSTRING_INDEX. Esta función acepta un carácter o un valor de cadena como delimitador y ejecuta una búsqueda contra el valor del delimitador dado.
También veremos algunos ejemplos para comprender cómo se pueden usar estas funciones al consultar datos como parte de las consultas SELECT.
Lo que vas a aprender:
SUBSTRING de MySQL
Sintaxis:
|_+_|Hay 2 formas en las que podemos utilizar la función SUBSTRING.
Comprendamos la sintaxis antes de sumergirnos en los ejemplos.
- {Valor de cadena}: Este es el valor real de la Cadena o el nombre de la columna que contiene la Cadena en la que se trabajará.
- {Índice de comienzo}: start_index es el índice de izquierda o derecha donde se iniciaría la subcadena. Los valores pueden ser positivos o negativos dependiendo de si queremos extraer String del lado izquierdo o del lado derecho, respectivamente. Esto quedará más claro con los ejemplos.
- {contar}: Este campo es opcional y especifica el recuento de caracteres del Índice de comienzo campo para el que se debe extraer la subcadena. Si no se menciona, entonces toda la cadena a partir de la coincidencia Índice de comienzo sería devuelto.
El formato2 es una variación del formato1, excepto que es más legible con las palabras clave FROM y FOR. Entonces, aquí, FROM se usa antes de mencionar el Índice de comienzo valor, y FOR se utiliza antes de mencionar el contar .
Veamos algunos ejemplos para comprender la función SUBSTRING de MySQL.
Tomemos el valor de entrada de cadena como Ayuda para pruebas de software
Los índices de cadena se verán como la siguiente tabla
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
S | o | F | t | en | a | r | es | T | es | s | t | I | norte | gramo | H | es | l | pag |
Ejemplo de SUBSTRING de MySQL
Sin contar
Supongamos que queremos extraer el texto de ayuda de la cadena anterior: H tiene un índice de 18
Veamos la consulta a continuación:
|_+_|Es importante señalar aquí que no hemos mencionado ningún valor para el contar, pero todavía estamos obteniendo la Cadena correcta, esto se debe a que cuando se omite el recuento, se devuelve la Cadena completa a partir del índice dado.
En este caso, si mencionamos el índice de inicio, por ejemplo, para 'T' (índice 10)
|_+_|Como puede ver arriba, el resultado contiene el texto completo 'Ayuda para pruebas'.
Con Conde
Ahora, veamos un ejemplo en el que mencionaremos el recuento de caracteres que se devolverán.
Supongamos que solo queremos extraer la palabra 'Prueba' de la cadena 'Ayuda para pruebas de software'. Entonces podemos mencionar contar como - 7 (que es la longitud de la palabra 'Prueba)
Veamos la consulta a continuación:
|_+_|Aquí hemos descrito tanto el índice inicial como el recuento de caracteres como parte de la consulta para obtener el resultado requerido.
Con valores de índice negativos
Hasta ahora, para los ejemplos que hemos visto, hemos especificado el Índice de comienzo como valor positivo.
También podemos especificar start_index como negativo, lo que simplemente significa que en lugar de contar desde la izquierda, el motor MySQL intentará contar el índice de inicio desde el final de la cadena.
Veamos un ejemplo
Para nuestra 'Ayuda para pruebas de software' de cadenas, agreguemos una fila a continuación para identificar los índices correctos.
L | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
S | o | F | t | en | a | r | es | T | es | s | t | I | norte | gramo | H | es | l | pag | |||
R | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
Entonces, la fila inferior aquí representa los índices correctos. Ahora suponga que queremos extraer la palabra 'Prueba' usando la función SUBSTRING de MySQL con el índice correcto.
El índice derecho para 'T' en Pruebas es 12 (y el índice izquierdo es 10)
|_+_|Como puede ver en el ejemplo anterior, mencionar los índices correctos como un valor negativo aún producirá el mismo resultado.
Índice fuera de los límites
Ahora, prueba algunos escenarios negativos
- Cuando start_index especificado no existe: es decir, el índice especificado está fuera de los límites, entonces la salida estaría vacía.
- Cuando el recuento especificado es negativo o mayor que la longitud total de la cadena, entonces la salida sería solo el resto de la cadena (comenzando el índice de inicio especificado).
Puede ver arriba, aquí el recuento se mencionó como 100, pero la Cadena tiene solo 21 caracteres.
- Intentemos un escenario más con el recuento mencionado como negativo.
Aquí también, no habrá ningún error y solo habrá una cadena vacía que sería la salida.
MySQL SUBSTRING_INDEX
Esta es otra variante de la función SUBSTRING de MySQL.
Aquí, en lugar de mencionar el valor real de start_index, podemos simplemente mencionar el carácter y el índice y la cantidad de veces que se debe buscar el delimitador antes de devolver la salida.
Un punto importante a tener en cuenta aquí es la SUBSTRING_INDEX
Función ÍNDICE DE SUBSTRING DE MySQL:
|_+_|- {StringValue / Column}: Entrada de cadena real o el nombre de la columna en la consulta SELECT.
- Delimitador: Es el carácter o la subcadena lo que debe buscarse para extraer la Cadena restante como salida. Este valor distingue entre mayúsculas y minúsculas, por lo que debe especificarse como aparece en la cadena real.
- norte: Recuento de delimitadores: es decir, el número de veces que se debe buscar el delimitador antes de devolver la cadena.
Comprendamos esto con la ayuda de algunos ejemplos.
Usaremos la misma cadena 'Ayuda para pruebas de software' como nuestra Cadena de entrada para todos los ejemplos que vamos a discutir en la siguiente sección.
Buscando un personaje
Al buscar el carácter 'T', la salida sería 'Software'. Tenga en cuenta que también se incluirá el espacio adicional después de la palabra Software.
|_+_|Busque un personaje que aparezca más de una vez. Aquí es - 'e'
|_+_|En este ejemplo: dado que hemos especificado el recuento como 1, la salida sería String hasta que se alcance la primera aparición de 'e'.
Cambie la cuenta a 2 para el mismo carácter 'e'.
|_+_|Ahora, podemos ver que se devuelve la subcadena hasta la segunda aparición del carácter 'e'.
Tome otro ejemplo para comprender que el ÍNDICE DE SUBSTRING distingue entre mayúsculas y minúsculas. Probemos con la letra 't' en lugar de 'T'
cómo abrir un archivo xml en el navegador|_+_|
Buscando una cadena
Podemos usar la función SUBSTRING INDEX para buscar una cadena en lugar de un carácter. Busquemos la palabra 'Prueba'.
|_+_|Buscando una cadena no existente
Usando SUBSTRING INDEX con una cadena que no existe.
|_+_|El resultado puede ser un poco inesperado aquí. Pero dado que MySQL Engine no puede encontrar la coincidencia requerida, devuelve la cadena completa como resultado.
Búsqueda de caracteres o cadenas en orden inverso
Similar a la función SUBSTRING, la función SUBSTRING INDEX también permite tener el conteo mencionado como números negativos. Esto significa que, en lugar de desplazarse de izquierda a derecha, MySQL Engine intentará encontrar una coincidencia de derecha a izquierda.
Comprenda esto con la ayuda de algunos ejemplos.
|_+_|En el ejemplo anterior, puede ver que el delimitador es 'T' mientras que el recuento es -1. Por lo tanto, la salida sería Subcadena desde la derecha hasta que se obtenga la primera coincidencia para la letra 'T'.
Aplicaciones de la función SUBSTRING de MySQL
Por lo general, usamos las funciones de cadena de MySQL al consultar datos de 1 o varias tablas. Puede usarse para dividir valores en una columna, o simplemente para mostrar los valores esenciales según la necesidad.
Ejemplo: Supongamos que tenemos una tabla de detalles de empleados que consta de identificación, nombre y dirección.
Y la columna de dirección tiene el formato: {HouseNo}, {StreetName}
A continuación se muestra el script para crear una tabla e insertar datos ficticios:
Utilice la función SUBSTRING de MySQL para tener la número de casa extraído de la columna de dirección como se muestra a continuación.
|_+_|Producción:
nombre | casa no | dirección | años |
---|---|---|---|
Akash malhotra | 22 | 22, Colonia de Defensa | 24 |
Steve Wilson | 12/4 | 12/4, calle Wilson | 28 |
Monica Singh | 190 | 190, Smith Lane | 32 |
En la consulta anterior, puede ver que hemos utilizado la función SUBSTRING_INDEX para obtener el número de casa de la columna de dirección y hemos utilizado ',' como delimitador.
De manera similar, puede haber muchas aplicaciones en las que nos gustaría extraer la cadena para obtener información significativa de una entrada de cadena más grande o el valor de la columna.
Preguntas frecuentes
P # 1) ¿Qué función MySQL devuelve la posición de la primera aparición de una SUBSTRING en la cadena?
Responder: MySQL proporciona 2 funciones para devolver o extraer una SUBSTRING de un valor determinado de String o columna.
- SUBSTRING
Ejemplo:
- ÍNDICE DE SUBSTRING
Ejemplo:
P # 2) ¿Qué es SUBSTRING_INDEX en MySQL?
Responder: La función SUBSTRING_INDEX es una variante de la función SUBSTRING. Mientras que en la función SUBSTRING normal tiene que mencionar el índice como un número en la cadena de entrada, para la función SUBSTRING_INDEX, puede mencionar un carácter o una subcadena más pequeña para buscar.
Lectura sugerida = >> Tutorial de MySQL COUNT
Conclusión
En este tutorial, hemos aprendido sobre las funciones SUBSTRING y SUBSTRING_INDEX de MySQL. Ambas funciones extraen una subcadena contra la cadena de entrada dada, pero funcionan de una manera ligeramente diferente.
SUBSTRING espera el índice como los números reales, mientras que SUBSTRING_INDEX puede tener el delimitador especificado como un carácter o un valor de cadena, y luego el motor MySQL puede extraer contra la cadena o carácter coincidente requerido.
Ambas funciones se utilizan en gran medida cuando una columna que tiene varias piezas de información se puede extraer en subcolumnas mediante la lógica de extracción de cadenas según los requisitos adecuados.
Lectura recomendada
- Tutorial de cadenas de C #: métodos de cadena con ejemplos de código
- Método Java substring () - Tutorial con ejemplos
- Tutorial del método Java String contains () con ejemplos
- Método Java String compareTo con ejemplos de programación
- Funciones de cadena en C ++: getline, subcadena, longitud de cadena y más
- Funciones de conversión de cadenas de C ++: cadena a int e int a cadena
- Funciones de cadena de Python
- Funciones MySQL CONCAT y GROUP_CONCAT con ejemplos