Estuve trabajando con las bases de datos de Boonic, haciéndolas mas rápidas y livianas; y el proceso además de cumplir con estos objetivos también me valió otros resultados positivos inesperados, entre los que se destaca haber aprendido algunas cosas interesantes de mysql.

En primer lugar quiero comentarles sobre la función de cadenas CHARACTER_LENGTH, la cual nos sirve para contar los caracteres de un campo; y se usa de esta manera:
SELECT CHARACTER_LENGTH(`campo`) FROM tabla
Esta consulta nos devolvería el conjunto de registros con un campo que tendría los números de caracteres de los registros.
Ahora podemos preguntarles por las ID (siempre que la tabla en cuestión contenga un campo de esta clase con ese nombre) de aquellos registros donde el campo ‘texto’ tiene mas de 200 caracteres; la consulta sería así:
SELECT ID FROM tabla WHERE CHARACTER_LENGTH(`texto`)>200
Otra función interesante es SUBSTRING_INDEX; la analicemos un poco:
SUBSTRING_INDEX(str,delim,count)
Esta función nos devuelve la subcadena de str anterior a la aparición de count veces de delim. Si count es positivo devuelve lo que haya a la izquierda del delimitador, si es negativo devuelve lo de la derecha. Pongamos un ejemplo para que se aclaren las cosas:
SELECT SUBSTRING_INDEX(‘www.boonic.com’, ‘.’, -2);
En esta consulta estamos solicitando que nos de la subcadena que está a la derecha de la segunda aparación del delimitador “.” contando desde la derecha. El resultado sería: “boonic.com”.
Bueno, ahora hagamos las cosas mas complicadas. Supongamos que tenemos una tabla con un campo de texto llamado ‘texto’, como verán estoy muy original con los nombres, donde tenemos al final de cada registro en este campo una dirección url en html; y queremos ver todos aquellos registros donde hay mas de 200 caracteres antes de la dirección url; la consulta sería así:
SELECT * FROM `tabla` WHERE CHARACTER_LENGTH(SUBSTRING_INDEX(`texto`,’<a href’,1))>200
En esta última consulta combinamos las dos funciones que analizamos en el post. Estas funciones resultan muy útiles para el manejo de cadenas, así como para borrar por ejemplo posts muy pequeños o irrelevantes en una gran tabla.
Fuente: MySQL
Posts Relacionados:
- VoltDB es un coche de F1, mientras que MySQL y Oracle son “fititos”
- Nuevas funciones en Google Analytics
No Comments