Consulta like con acentos

07/03/2007 - 12:48 por cat | Informe spam
Hola,

tengo que hacer una consulta a la base de datos que segun un apellido
introducido me devuelva todos los nombre con un apellido igual o similar al
introducido.(mediante un LIKE ) el problema me surge con los acentos... si
un usuario que su apellido tiene acento (Ej: Diego Forlán) se introduce su
apellido sin acento (ej: Forlan) la consulta me tendría que devolver el
usuario.

Con un like no diferencia si hay acentos o no... alguien sabe como lo puedo
hacer???


Muchas gracias.

Saludos.

Preguntas similare

Leer las respuestas

#1 Hernan Nieto
07/03/2007 - 13:18 | Informe spam
cat,

No me queda claro si el las tablas tenes almacenado los apellidos con
acento o sin acento. Si los datos se guardan sin acentos, y el usuario
al desear realizar una busqueda puede indicar un apellido con acentos,
tendrias q "limpiar" esos codigos para enviar una busqueda limpia a SQL
Server. Yo creeria q lo mas recomendable es guardar los datos sin
acentos.

Saludos.
Respuesta Responder a este mensaje
#2 Jose Mariano Alvarez
07/03/2007 - 15:00 | Informe spam
Eso depende del collation si es sensible o no a los acentos.
Cambia el collation de la columna por uno que no sea sensible a los acentos
y mayusculas.
Debe terminar en "CI_AI"






Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)




"cat" wrote in message
news:
Hola,

tengo que hacer una consulta a la base de datos que segun un apellido
introducido me devuelva todos los nombre con un apellido igual o similar
al
introducido.(mediante un LIKE ) el problema me surge con los acentos...
si
un usuario que su apellido tiene acento (Ej: Diego Forlán) se introduce su
apellido sin acento (ej: Forlan) la consulta me tendría que devolver el
usuario.

Con un like no diferencia si hay acentos o no... alguien sabe como lo
puedo
hacer???


Muchas gracias.

Saludos.
Respuesta Responder a este mensaje
#3 Alejandro Mesa
07/03/2007 - 15:14 | Informe spam
cat,

Que es lo que deseas, que se tomen o no en cuenta los acentos?

Todo depende de la collation de tu base de datos, si esta es AS (accent
sensitive - sensitiva a los acentos) entonces no tienes problemas, pero si
esta no es AS, entonces tendras que usar la clausula "collate" para cambiar
la collation que se use junto con el operador "like".

Ejemplo:

select 'bingo!'
where 'Diego Forlán' like '%lán' collate Modern_Spanish_CI_AI

select 'bingo!'
where 'Diego Forlán' like '%lan' collate Modern_Spanish_CI_AI

select 'bingo!'
where 'Diego Forlán' like '%lán' collate Modern_Spanish_CI_AS

select 'bingo!'
where 'Diego Forlán' like '%lan' collate Modern_Spanish_CI_AS
go


AMB

"cat" wrote:

Hola,

tengo que hacer una consulta a la base de datos que segun un apellido
introducido me devuelva todos los nombre con un apellido igual o similar al
introducido.(mediante un LIKE ) el problema me surge con los acentos... si
un usuario que su apellido tiene acento (Ej: Diego Forlán) se introduce su
apellido sin acento (ej: Forlan) la consulta me tendría que devolver el
usuario.

Con un like no diferencia si hay acentos o no... alguien sabe como lo puedo
hacer???


Muchas gracias.

Saludos.
Respuesta Responder a este mensaje
#4 cat
07/03/2007 - 15:37 | Informe spam
Hola,

antetodo muchas gracias.

Bueno la idea es que en mi base de datos tengo almacenado nombres y
apellidos de personas con acentos.
La idea es hacer una consulta que sin tener en cuenta los acentos me
devuelva tambien los que tiene acento.

Si yo hago una consulta con "Forlan"(sin acento) me devuelva "Diego Forlán".

De los ejemplos de Alejandro la solucion la he encontrado en:
select 'bingo!' where 'Diego Forlán' like '%lan' collate Modern_Spanish_CI_AI

Muchas gracias a todos!!!!
Saludos.


"Alejandro Mesa" wrote:

cat,

Que es lo que deseas, que se tomen o no en cuenta los acentos?

Todo depende de la collation de tu base de datos, si esta es AS (accent
sensitive - sensitiva a los acentos) entonces no tienes problemas, pero si
esta no es AS, entonces tendras que usar la clausula "collate" para cambiar
la collation que se use junto con el operador "like".

Ejemplo:

select 'bingo!'
where 'Diego Forlán' like '%lán' collate Modern_Spanish_CI_AI

select 'bingo!'
where 'Diego Forlán' like '%lan' collate Modern_Spanish_CI_AI

select 'bingo!'
where 'Diego Forlán' like '%lán' collate Modern_Spanish_CI_AS

select 'bingo!'
where 'Diego Forlán' like '%lan' collate Modern_Spanish_CI_AS
go


AMB

"cat" wrote:

> Hola,
>
> tengo que hacer una consulta a la base de datos que segun un apellido
> introducido me devuelva todos los nombre con un apellido igual o similar al
> introducido.(mediante un LIKE ) el problema me surge con los acentos... si
> un usuario que su apellido tiene acento (Ej: Diego Forlán) se introduce su
> apellido sin acento (ej: Forlan) la consulta me tendría que devolver el
> usuario.
>
> Con un like no diferencia si hay acentos o no... alguien sabe como lo puedo
> hacer???
>
>
> Muchas gracias.
>
> Saludos.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida