Lista de funciones de cadena

Más funciones que la fecha y la hora: solo el tipo String. Que en SQL está dado por los tipos CHAR (n) y VARCHAR (n). Recordemos los más populares de ellos:

Función Descripción
1 LONGITUD (cadena) Devuelve la longitud de la cadena pasada en bytes
2 CHAR_LENGTH(cadena) Devuelve la longitud de la cadena pasada en caracteres
3 LOCALIZAR(subcadena,cadena), Busca una subcadena en una cadena similar al método indexOf()
4 LOCALIZAR(subcadena,cadena,pos) Busca una subcadena en una cadena que comienza en pos
5 CONCAT(cadena1,cadena2,...) Concatena varias líneas
6 SUBSTR(), SUBCADENA() Devuelve una subcadena dada por un rango de caracteres
7 INFERIOR(cadena) Convierte una cadena a minúsculas
8 SUPERIOR (str) Convierte una cadena a mayúsculas
9 REEMPLAZAR() Reemplaza una subcadena en una cadena
10 FÓSFORO() Comprueba si una cadena coincide con un patrón dado
once TRIM(cadena) Recorta los caracteres vacíos al principio y al final de una cadena
12 LTRIM(cadena) Recorta los caracteres vacíos al principio de una cadena
13 RTRIM(cadena) Recorta los caracteres vacíos al final de una cadena
14 TO_BASE64(cadena) Convierte una cadena a Base64
15 DESDE_BASE64(cadena) Convierte una cadena de Base64

Agrupé deliberadamente las funciones en pequeños grupos para que sea más fácil entender cómo trabajar con ellas. A continuación consideraremos una función de cada grupo. Puede encontrar una lista completa de funciones para trabajar con cadenas en la documentación oficial .

Convirtamos la cadena

Primero tratemos con las funciones más simples que simplemente convierten una cadena a una forma ligeramente diferente. Por ejemplo, convertir una cadena a mayúsculas y minúsculas. En general, su comportamiento es similar a las mismas funciones en el lenguaje Java.

Así que solo daré una tabla con algunos ejemplos.

# Pedido Resultado
1 SELECCIONE LONGITUD ('texto') 4
2 SELECCIONE LONGITUD ('Hola') 12
3 SELECCIONE INFERIOR ('Hola') Hola
4 SELECCIONA SUPERIOR ('Hola') HOLA
5 SELECCIONE SUBSTR ('Hola', 2, 3) riv
6 SELECT SUBSTR ('Hola, ¿cómo estás?', 8) ¿Cómo estás?

Las funciones funcionan como se esperaba, al igual que sus contrapartes del JDK.

La única salvedad: en la primera línea, el resultado es 4, no 8. El caso es que se usa 1 byte (codificación ASCII) en la solicitud para codificar caracteres latinos. Pero si trabaja con datos de la base de datos, la longitud de la cadena dependerá de la configuración de codificación de la base de datos . Encontrarás muchas sorpresas mientras trabajas con la base de datos :)

Acciones complejas con cadenas

Bueno, veamos cosas más complejas al trabajar con cadenas. ¿Qué se te ocurriría...

Vamos a mostrar las tareas de la tabla de tareas, y si la fecha límite de la tarea ya pasó, agregue la palabra EXPIRED a la descripción de la tarea.

Suena interesante. Aunque todavía no hemos aprendido condiciones complejas, simplifiquemos un poco la tarea. Simplemente escribamos una consulta que muestre una lista de tareas pasadas, pero asegúrese de agregar la palabra "¡EXPIRADO!" al título. .

Para ello, tendremos que utilizar la función CONCAT:

   SELECT CONCAT( 'EXPIRED! ', name) FROM task 
   WHERE deadline < CURDATE() 

El resultado de esta consulta será:

concat('¡EXPIRADO! ', nombre)
¡VENCIÓ! Arreglar un error en la interfaz

Recomendación. Si solo necesita convertir los datos a una forma ligeramente diferente, esto también se puede hacer a nivel de código Java. Pero si desea utilizar funciones de cadena del lado del servidor SQL (dentro de WHERE), definitivamente no puede prescindir de ellas.