Alex_DTP 0 Denunciar post Postado Março 9, 2009 Pessoal, Tõ encafifado com um problema com o CONCAT_WS. Está repetindo o separador para valores nulos. Ex.: CONCAT_WS(',', e.end_TipoLograd, e.end_Tratamento, e.end_NomeLograd) AS endereco | Avenida | São | João | Avenda,São,João Até aí beleza, mas agora | Avenida | NULL | Ipiranga | Avenda,,Ipiranga Não deveria repetir a virgula, estou certo? O quê pode estar acontecendo? Pelo que entendi da função não deveria repetir o separador. Alex Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Março 9, 2009 Eh NULL mesmo marcado como NULL ou eh vazio sem nada porem nao nulo? Compartilhar este post Link para o post Compartilhar em outros sites
Alex_DTP 0 Denunciar post Postado Março 9, 2009 Eh NULL mesmo marcado como NULL ou eh vazio sem nada porem nao nulo?Hummm! É vazio. É por isso? Tem como contornar? Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Março 9, 2009 você pode fazer um update ou um bacalhau o update acho q você sabe como fazer o bacalhau seria algo como concat_ws( if(campo1='',NULL,campo) , if(campo1='',NULL,campo)) Compartilhar este post Link para o post Compartilhar em outros sites
Alex_DTP 0 Denunciar post Postado Março 9, 2009 É eu tava fazendo pior... CONCAT_WS('',campo1,NULLIF(CONCAT(' ',campo2),''),NULLIF(CONCAT(', ',campo3),''), . . . até que deu certo mas quando tem 2 campos "vazios" seguidos, repete o separador. Vou fazer o update como você sugeriu. Só uma dúvida: É sempre melhor trabalhar com NULL em vez de vazio nas tabelas? Valeu Giesta, Alex Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Março 9, 2009 Sempre eh uma palavra mto pesada.... Pela modelagem, logica e blablabla eh melhor usar o NULL porem ao usar o NULL você tem q prestar atençao q ele eh um traidor.... vamos dizer q você faça uma consulta assim select * from tabela where campo <> 1 se 'campo ' contiver valores NULLs eles nao serao exibidos, pq quando você compara com algo (<>1 , no nosso caso) eh como se tivesse um IS NOT NULL embutido na consulta. Entao você tem q sempre lembrar de fazer select * from tabela where campo <> 1 or campo IS NULL Compartilhar este post Link para o post Compartilhar em outros sites
Alex_DTP 0 Denunciar post Postado Março 9, 2009 Valeu giesta, Alex Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Março 12, 2009 Pessoal, Evitem ao máximo armazenar valores nulos - NULL. Mesmo que você indexe a coluna, NULL não participa do índice. Happy MySQL'ing!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites