Query sqlite

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Query sqlite

Mensagempor capricorn » Terça Abr 08, 2008 14:50

Olá a todos

Estou aqui com um pequeno stress numa base de dados sqlite.
A questão é que pretendo pesquisar nomes de utilizadores por aproximação e estou com problemas nos acentos.
Por exemplo, se pesquisar por "jose" quero que retorne a lista "José, Josefina,...", mas de momento não está a retornar o José...

A query em questão é a seguinte:

SELECT nome FROM utilizadores WHERE nome LIKE "%jose%";

alguém sabe como ultrapassar este problema?

PS: estou a utilizar c# com sqlite
capricorn
Membro de Prata
Membro de Prata
 
Mensagens: 383
Registado: Sexta Ago 20, 2004 13:03
Localização: Porto

Re: Query sqlite

Mensagempor rgomes » Terça Abr 08, 2008 15:07

O caracter e é diferente do é.

Faz assim:

Código: Seleccionar todos
SELECT nome FROM utilizadores WHERE nome LIKE "%jos%"


cumps
Avatar do Utilizador
rgomes
Membro de Prata
Membro de Prata
 
Mensagens: 165
Registado: Sexta Dez 16, 2005 19:27

Re: Query sqlite

Mensagempor capricorn » Terça Abr 08, 2008 15:27

rgomes Escreveu:O caracter e é diferente do é.

Faz assim:

Código: Seleccionar todos
SELECT nome FROM utilizadores WHERE nome LIKE "%jos%"


cumps


Obrigado pela resposta, mas o objectivo é ser o sql a descartar os acentos, o código era apenas um exemplo
capricorn
Membro de Prata
Membro de Prata
 
Mensagens: 383
Registado: Sexta Ago 20, 2004 13:03
Localização: Porto

Re: Query sqlite

Mensagempor rgomes » Terça Abr 08, 2008 15:31

capricorn Escreveu:
Obrigado pela resposta, mas o objectivo é ser o sql a descartar os acentos, o código era apenas um exemplo



Desta maneira não dá. Como já tinha dito são caracteres diferentes, com id's diferentes.
Avatar do Utilizador
rgomes
Membro de Prata
Membro de Prata
 
Mensagens: 165
Registado: Sexta Dez 16, 2005 19:27

Mensagempor SkylineGTR » Terça Abr 08, 2008 15:39

Cria uma função que pegue no nome, retire os acentos e retorne uma string já sem os acentos.

Penso que podes fazer isso pelo SQLite (que desconheço) ou pela tua aplicação.

Assim para o nome "José", aplicas uma função tipo RemoveAccent("José") que depois te devolve "Jose" para usares na comparação.


Em SQL Server podias usar uma collation.

Pesquisa por "accent insensitive queries" ou algo do género.
i7 920 | ASUS P6T Deluxe V2 | 6GB Corsair Dominator PC3-12800 | BFG GTX285 OC2 | 2x WD 640GB + WD 750GB + Seagate 750GB + Samsung F1 1TB | Corsair HX-620 | HP w2207 | Lian Li PC-V1110B
SkylineGTR
Membro Vitalício
Membro Vitalício
 
Mensagens: 4184
Registado: Terça Dez 28, 2004 22:26

Mensagempor rgomes » Terça Abr 08, 2008 15:48

Avatar do Utilizador
rgomes
Membro de Prata
Membro de Prata
 
Mensagens: 165
Registado: Sexta Dez 16, 2005 19:27

Mensagempor capricorn » Terça Abr 08, 2008 18:03

rgomes Escreveu:Tens aqui uma função dessas:

http://www.linhadecodigo.com.br/Dica.aspx?id=1291

O problema é que os dados estão com acentos na base de dados.

Parece que não há uma solução simples
Vou tentar criar uma função em sqlite e depois posto aqui para verem

obrigado pelas respostas :)
capricorn
Membro de Prata
Membro de Prata
 
Mensagens: 383
Registado: Sexta Ago 20, 2004 13:03
Localização: Porto

Mensagempor Fenrir » Quinta Abr 10, 2008 10:59

Como disseram os colegas do Forum, com acento e sem acento são chars diferentes, id's diferentes.


poderias fazer é no LIKE onde tem acento colocar %jos?%

mas apanhava josefina, jose, josa,joso .. percebes.. mas é a melhor solução possivel julgo.

Doutra forma não dá, como já foi dito, tipo de char diferente. Mas se encontrares porventura uma solução posta, acho que é bem interessante.

Cumps.
Avatar do Utilizador
Fenrir
Membro de Prata
Membro de Prata
 
Mensagens: 354
Registado: Segunda Set 20, 2004 22:33
Localização: Porto


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron