En el centro en el que trabajo llevamos varios años usando G Suite para la gestión de nuestras cuentas corporativas (y, a pesar de la polémica y las suspicacias que existen al respecto, estamos francamente contentos con los servicios que nos ofrece 😅)
La cuestión es que las cuentas tanto de profesores como alumnos siguen un patrón (bastante habitual de ver) que consiste en usar las primeras letras de nombres y apellidos incluyendo al final una serie de dígitos.
En una de las herramientas que tengo desarrolladas, necesitaba distinguir este tipo de cuentas de otras como las pertenecientes a planes y programas o a los departamentos en si y la forma más sencilla que tenía era seleccionar sólo aquellos registros sin números (para quedarme con las cuentas que no pertenecen a «individuos» sino a entidades como las de los planes que he mencionado 😉 )
En esta herramienta (un script en Python con Flask) utilizo SQLite como base de datos y, aunque existe la posibilidad de usar el operador REGEXP en sqlite3 he optado finalmente por el uso del operador GLOB que no deja de ser como el comando LIKE pero permitiendo comparar cadenas contra determinados patrones.
En concreto, la SQL que me permite buscar todos los emails que no contengan números es
select * from usuarios_gsuite where not email GLOB '*[0-9]*';
Siendo la sintaxis de GLOB realmente sencilla:
- Usa * o ? (como se hace desde los tiempos de MS-DOS o actualmente en la terminal de Linux) para indicar múltiples (*) o un simple (?) carácter
- [xyz] busca cualquiera de los caracteres
- [^abc] indica que no sea ninguno de los caracteres especificados
- [0-9] indica rango de valores como podría ser igualmente [a-zA-Z] para cualquier letra (que no dígito) tanto en mayúsculas como en minúsculas
Podrás encontrar fácilmente ayuda y ejemplos de GLOB tanto en Internet como en el enlace que te he dejado un poco más arriba y, si tienes dudas, pregunta en los comentarios que será interesante poder echar una mano y de paso aprender todos un poco más al respecto 👍
Conclusión
Pequeño artículo donde dejar constancia del uso y sintaxis del operador GLOB que te ayudará a realizar fácilmente consultas en bases de datos SQLite sin tener que recurrir a las expresiones regulares (cuando no queda más remedio no queda pero, para consultas sencillas, te puede sacar de más de un aprieto) que espero te sea de utilidad (y a mí de recordatorio 😉 )
Y tú…
- ¿Has usado antes el operador GLOB?
- ¿Qué tal te llevas con las expresiones regulares?
- ¿Conoces otros gestores de bases de datos en los que pueda usarse?
- ¿Consideras SQLite una base de datos «de juguete» o la usas aunque sea ocasionalmente?
- …
Muy bueno, no conocía el operador glob.
Felices fiestas
Me gustaMe gusta
La verdad es que en algunas ocasiones resulta especialmente útil. A mí me ha salvado en esta ocasión 😉👍🏻
Me gustaMe gusta