M4n0w4r 0 Denunciar post Postado Agosto 27, 2009 Olá a todos :) Criei em um editor de texto formatado para trabalhar UTF-8 o seguinte banco de dados também em UTF-8 create database BD default character set utf8 collate utf8_unicode_ci; use BD; create table alimentos ( alimento_id integer not null, nome varchar (30) not null, constraint pk_alimento primary key (alimento_id) ); insert into alimentos (alimento_id, nome) values (1, 'Pequi'); insert into alimentos (alimento_id, nome) values (2, 'Pêssego'); A maioria de minhas variáveis estão em UTF-8, somente "character_set_server" e "collation_server" eu não consegui mudar :huh: collation_connection utf8_general_ci collation_database utf8_general_ci collation_server latin1_swedish_ci character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server latin1 character_set_system utf8 character_sets_dir c:\wamp\bin\mysql\mysql5.1.36\share\charsets\ Minha dúvida é, porque quando eu executo essa consulta SELECT nome FROM alimentos WHERE nome LIKE 'pe%'Ela me retorna "Pêssego" sendo que eu quero retornar somente os alimentos que começam por "pe" e que não possuem acento circunflexo :( Agradeço muito quem puder ajudar. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
LHAlmeida 0 Denunciar post Postado Agosto 27, 2009 Cara, quebrei a cabeca com isso e não achei a solução iuahiuah Se conseguir posta aqui pra gente Abraço Compartilhar este post Link para o post Compartilhar em outros sites
M4n0w4r 0 Denunciar post Postado Dezembro 6, 2009 Olá a todos novamente, estou revivendo o tópico pois encontrou uma solução que gostaria de compartilhar. Para fazer consultas case sensitive e accent sensitive é so converter o campo desejado para binário SELECT nome FROM alimentos WHERE binary nome LIKE 'pe%' Não sei as desvantagens desse método, so sei que funciona e está sendo minha única saída. Se olhar no site oficial "http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html" da para ver a seguinte solução: LIKE 'a%' COLLATE latin1_general_cs No meu caso ficaria assim SELECT nome FROM alimentos WHERE nome LIKE 'pe%' COLLATE utf8_unicode_ci Infelizmente esse método não funcionou para mim, alguem teria alguma solução ? Vlwwwwwwwwww, flwwwwwwwwwwwwww Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Dezembro 7, 2009 na verdade seria SELECT nome FROM alimentos WHERE nome LIKE 'pe%' COLLATE utf8_unicode_cs ci -> case insensitive cs -> case sensitive Compartilhar este post Link para o post Compartilhar em outros sites
M4n0w4r 0 Denunciar post Postado Dezembro 7, 2009 ci -> case insensitive cs -> case sensitive Meu deus que coisa óbvia, estava em frente aos meus olhos e não consegui ver http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif Muito obrigado pela resposta giesta Compartilhar este post Link para o post Compartilhar em outros sites
M4n0w4r 0 Denunciar post Postado Dezembro 10, 2009 Opa, voltando mais uma vez :) So para deixar claro que não existe "utf8_unicode_cs" no mysql, em compensação existe o "utf8_bin" que resolve o problema :) Vlwwwm, flowwwwwwwwwwwww Compartilhar este post Link para o post Compartilhar em outros sites