Los comodines son útiles cuando queremos hacer comparaciones no exactas. Son sencillos de utilizar, pero con frecuencia se cometen algunos fallos que hay que evitar. Aquí hay algunos ejemplos de fallos habituales.
Recordad que hay dos comodines:
- %: que representa cualquier cantidad (0 a N) de caracteres
- _: que representa un y solo un carácter.
La primera precaución es que los comodines se deben usar con like (y solo con like). Si los usamos con el operador de comparación de igualdad (=) los caracteres % y _ serán interpretados literalmente, no como comodines. Por ejemplo, el código de la izquierda busca filas que cumplan que el nombre sea exactamente 'A%' (que es un nombre muy raro); pero el código de la derecha busca nombres que empiecen por 'A':
MAL
nombre = 'A%'
BIEN
nombre like 'A%'
Pero aunque se use like, también podemos equivocarnos al usar los comodines. Considera este par de ejemplos, que tratan de hacerte reflexionar sobre la necesidad de pensar detenidamente qué expresión necesitamos para no incluir falsos resultados. Cosas como las siguientes no están bien expresadas:
- Si tenemos que usar un campo llamado paren (abreviatura de parentesco, con valores como esposo, esposa, hijo, hermana...) para seleccionar 'hijo' o 'hija' hay que usar el comodín _, no el %, ya que la diferencia entre los valores es un único carácter. Si usásemos % podríamos llegar a incluir valores no deseados como 'hijastro':
MAL
where paren like 'hij%'
BIENwhere paren like 'hij_'
- Si tenemos un campo llamado nombreCompleto con el nombre y los apellidos de personas, y queremos seleccionar aquellas filas cuyo nombre (sin considerar apellidos) sea 'Manuel' no podemos emplear la comparación de la izquierda, porque también incluiríamos, por ejemplo, a personas llamadas 'Manuela'. Un truco para evitar este fallo es incluir un espacio en blanco al final del nombre y antes del comodín:
MAL
nombre like 'Manuel%'
BIENnombre like 'Manuel %'
No hay comentarios:
Publicar un comentario