Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   consulta sql y acentos... (https://www.clubdelphi.com/foros/showthread.php?t=22443)

User_baja1 15-06-2005 17:58:02

consulta sql y acentos...
 
Hola a todos,
Hay alguna funcion en sql para obtener registros aunque tengan acentos??

ej:
cliente: pepe lópez


select * from clientes where nombre like '%lopez%'

y que salga el registro.

gracias,
david.

roman 15-06-2005 18:06:36

Que yo sepa, esto dependerá de la base de datos que uses, del juego de caracteres y el tipo de cotejamiento.

En Paradox me parece que no es posible.

// Saludos

User_baja1 16-06-2005 08:35:46

Cita:

Empezado por roman
Que yo sepa, esto dependerá de la base de datos que uses, del juego de caracteres y el tipo de cotejamiento.

En Paradox me parece que no es posible.

// Saludos

pues uso Sql server 2000, y juego de caracteres spanish ... ¿se puede conseguir lo que quiero?

roman 16-06-2005 16:57:13

Pues ni idea de SQL Server pero supongo que será similar a otros casos. En MySql por ejemplo, puedo usar el juego de caracteres Latin1, pero esto sólo dice de cuáles caracteres se dispone. Además entra en juego el cotejamiento (collation) que da las reglas por ejemplo de cómo se hacen las comparaciones. Yo uso latin1_spanish_ci donde el sufijo "ci" indica "case insensitive" y es éste el que me permite buscar con "lopez" a "Lopez", "LOPEZ", "López" y "LÓPEZ".

// Saludos

ContraVeneno 16-06-2005 20:31:38

Podría asegurar que no se puede hacer lo que quieres; porque son caracteres diferentes, tienen código diferente..... no es lo mismo "ó" a "o", es como comparar una X con una A....
supongo que tendrías que hacer dos búsquedas distintas... o utilizar algún OR...

ahora, si cada vez que encuentres una letra con acento la cambias por un % podría funcionar, es decir: es una búsqueda de caracteres con acento en tu cadena y luego cambiarlos por %.... y al final quedara:

nombre like '%l%pez%'

Si estoy en un error por favor sáquenme de la ignorancia maldita :rolleyes:

saludos

gmontes 16-06-2005 20:35:12

para evitar esos problemas yo capturo todo en mayusculas y asi me quito esas confusiones.

ya que Arce es diferente a ARCE.

aunque no tenga acento

roman 16-06-2005 20:36:12

Cita:

Empezado por ContraVeneno
Si estoy en un error por favor sáquenme de la ignorancia maldita :rolleyes:

Pues como dije antes, no sé si en SQL Server se pueda o no así que no puedo hacerte este favor que pides :p

Pero sí te puedo confirmar que en MySql es posible.

// Saludos

ContraVeneno 16-06-2005 20:44:37

Cita:

Empezado por gmontes
para evitar esos problemas yo capturo todo en mayusculas y asi me quito esas confusiones.

ya que Arce es diferente a ARCE.

aunque no tenga acento

Yo tambien capturo todo en mayúsculas, pero igual sigo obteniendo acentos... no puedo decirle a todos mis usuarios que por favor no utilizen acentos jeje :p

En fin, tenía un poco de tiempo libre en mi hora de comida, así que me puse a investigar un poco... y si, Roman, es la misma situación para SQL Server, depende del COLLATION que se utilize, lo cuál para mi es muy interesante porque esta parte no la conocía....

Utiliza SQL_Latin1_General_CP1_CI_AI , en busqueda te sale con acentos o sin acentos, tambien sin ñ o con ñ

para más información consulta: MSDN (en inglés)
Otro foro en español: consulta busquedas sin distincion de Acentos


La franja horaria es GMT +2. Ahora son las 09:28:51.

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