Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Índices mayúsculas/minúsculas (https://www.clubdelphi.com/foros/showthread.php?t=14346)

sur-se 17-09-2004 12:49:25

Índices mayúsculas/minúsculas
 
Hola, en Firebird tengo entendido que los índices son sensibles a mayúsculas/minúsculas. La cuestión es que si yo almaceno en una tabla un campo de tipo varchar sobre el que defino un índice, cuando realice una consulta del tipo
Código:

select * from tabla where upper(campo) like ":valor)"
¿utilizará el índice? o por contra hará una búsqueda sin índice. Es decir, yo quiero que el campo sea de texto que admita mayúsculas y minúsculas, pero que al buscar por ese campo sea insensible a may/min y que por supuesto utilice el índice para buscar ya que la tabla tendrá miles de registros. ¿Es incompatible ambas cosas?
Salu2.

sur-se 20-09-2004 11:15:05

Hola, amplio la consulta. He estado realizando pruebas y efectivamente al poner el upper(campo) deja de utilizar el índice (se puede ver en el plan que va a utilizar la query). Esto supone un problema, pues me va a obligar a tener todo en mayúsculas/minúsculas para que las búsquedas sean rápidas. No sé si existe alguna opción de los índices en Firebird 1.5 que permita que sea insensible a may/min.
Una opción podría ser tener un campo repetido, pero todo en mayúsculas (por ejemplo) de forma que el índice iría por ese campo y las búsquedas se harían por él, pero el usuario vería el otro campo en el que se puede escribir may/min. Pero esta solución me parece un poco mala. No sé si hay otra.
Salu2.

kinobi 20-09-2004 11:31:08

Utiliza un juego de caracteres no case. Sigue este hilo...

http://www.clubdelphi.com/foros/show...3259#post13820

Saludos

gendelphi 20-09-2004 19:54:19

Tambien puedes usar CONTAINING en lugar del LIKE

Código:

SELECT * FROM tabla WHERE campo CONTAINING 'subcadena'

jachguate 20-09-2004 20:35:31

Hola gendelphi.

Me gustaria, si es posible, que nos explicaras cual es la ventaja, en este caso, de usar containing y no like?

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 13:17:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi