Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-09-2004
sur-se sur-se is offline
Miembro
 
Registrado: May 2003
Posts: 212
Poder: 16
sur-se Va por buen camino
Í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.

Última edición por sur-se fecha: 17-09-2004 a las 12:53:48.
Responder Con Cita
  #2  
Antiguo 20-09-2004
sur-se sur-se is offline
Miembro
 
Registrado: May 2003
Posts: 212
Poder: 16
sur-se Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 20-09-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: May 2003
Posts: 2.621
Poder: 18
kinobi Va por buen camino
Utiliza un juego de caracteres no case. Sigue este hilo...

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

Saludos
Responder Con Cita
  #4  
Antiguo 20-09-2004
gendelphi gendelphi is offline
Miembro
 
Registrado: Jul 2003
Ubicación: Tlaxcala Mexico
Posts: 73
Poder: 16
gendelphi Va por buen camino
Tambien puedes usar CONTAINING en lugar del LIKE

Código:
SELECT * FROM tabla WHERE campo CONTAINING 'subcadena'
Responder Con Cita
  #5  
Antiguo 20-09-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: May 2003
Ubicación: Guatemala
Posts: 6.243
Poder: 22
jachguate Va por buen camino
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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:24:16.


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