![]() |
Consulta con LIKE es case sensitive?
Saludos, estoy usando una consulta con un LIKE en Interbase mediante un TQuery, pero lo que pongo en mi LIKE debe de ser en mayúsculas y minúsculas tal y como está en la base de datos, es decir si pongo:
Solo me muestra los clientes cuyo nombre empieza con s minuscula. Hay alguna forma para que este tipo de búsqueda no sea case sensitive? |
Cita:
Saludos. |
Like
Cita:
La función lower está en las UDF de interbase pero tiene una recomendación que mejor leerla. ***************************************** * Lower * Functional description: * Returns the input string into lower * case characters. Note: This function * will not work with international and * non-ascii characters. * Note: This function is NOT limited to * receiving and returning only 80 characters, * rather, it can use as long as 32767 * characters which is the limit on an * INTERBASE character string. * *****************************************/ Yo encontré otra, "upper" que creo que funciona mejor y no es de una UDF, eso si, hay que pensar todo en mayúsculas. Y si te fijas en los foros la cosa está bien resuelta. Saludos. |
Hola Faust, como te dicen debes usar Lower o Upper, para convertir o todo a mayuscula o todo a minuscula, tanto en el campo como en el parametro que le pases a tu like, así no importara si introducen mayusculas o minusculas o ambos.
Y si quieres trabajar con minuscualas entonces utilizas Lower y LowerCase. Saluditos |
Gracias por sus respuetsas amigos...
Como lo que pongo en el LIKE es un texto que el usuario introduce en un TEdit, mejor le seteo la propiedad CharCase a ecUpperCase. |
¡Hola!
Además de las excelentes respuestas dadas, en InterBase y Firebird cuentas con la palabra reservada Containing que equivale a un Like '%X%' pero insensible al tamaño de las letras. ;) Saludos. Al. |
Cita:
Pero ya en serio, es curioso esto de FireBird. ¿Funciona con cualquier juego de caracteres? Lo pregunto porque, por ejemplo, en MySQL, cada base/tabla tiene definido un juego de caracteres y un cotejamiento. Y es el cotejamiento el que indica si las comparaciones son sensibles a mayúsculas y minúsculas o no. Y es que el cotejamiento controla cosas como hacer que a una búsqueda le de lo mismo u, U, ú y Ú, y no sé si el containing abarca también estos casos. // Saludos |
Muy buena pregunta Román.
En el caso de Firebird, el juego de caracteres y el cotejamiento (u ordenamiento, como prefiero llamarle) pueden ser establecidos a nivel de campo y sí, efectivamente Containing funciona con el ordenamiento que tenga establecido el campo en cuestión. Por lo menos sí me funciona con el ordenamiento ES_ES (español de España, México y otros países). Saludos. Al González. :) |
¡Ah ya! Pero entonces sí entra en juego el cotejamiento. Digo, porque pudiera ser que se emplease un cotejamiento para el cual la comparación con containing sí distinguiera entre mayúsculas y minúsculas.
Por cierto, en MySQL tambien se puede especificar a nivel de campo y afecta al operador LIKE. // Saludos |
Like...
Cita:
La verdad que la funcion Containing no la he usado, hago algunas pruebas y veo que tal. Saludos. |
Probaré las diferentes opciones... de seguro alguna me sirve...
|
La franja horaria es GMT +2. Ahora son las 12:28:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi