Ir ao conteúdo
  • Cadastre-se
thiagoinnfo

RESOLVIDO Concat sql

Recommended Posts

Pessoal não estou conseguindo aplicar um like no sql abaixo.

Estou recuperando a coluna model corretamente e so queria aplicar um like nela para nao exibir todos os resultados.

select concat(manufacturer.name, ' ', model.name) as model from manufacturer, model where manufacturer.id=model.manufacturer_id and model like '%gol%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá tente assim:

<?php$sql = mysql_query("SELECT CONCAT(M.name, MO.name) as modell FROM manufacturer M INNER JOIN model MO ON M.id = MO.manufacturer_id WHERE modell LIKE 'gol'");?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem...  no seu prmeiro código.. você escreveu a palavra "model"  

O Arley  escreceu "modell" com dois L.   retire um que seu campo irá funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Modell pode ser escrito ate com 3 LLL, pois é um campo criado dinamicamente conforme o script.

O problema deve ser algum erro de lógica, ele não esta permitindo um filtro nesse novo campo.

Fiz as alterações comentadas acima para teste, mas o erro é o mesmo model ou modell não existe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, é complicado sem saber como é seu DATABASE e o que você quer selecionar exatamente porque o que fazemos aqui é tentar solucionar problemas de SINTAXE então eu pergunto a você a coluna M.name e MO.name são distintos tem o mesmo objetivo? poderia usar outro meio sem o CONCAT?

    <?php         $sql = mysql_query("SELECT CONCAT(M.name, MO.name) FROM manufacturer M INNER JOIN model MO    ON M.id = MO.manufacturer_id WHERE M.name LIKE 'gol' OR MO.name LIKE 'gol'");    ?>
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Pessoal não estou conseguindo aplicar um like no sql abaixo.

Estou recuperando a coluna model corretamente e so queria aplicar um like nela para nao exibir todos os resultados.

select concat(manufacturer.name, ' ', model.name) as model from manufacturer, model where manufacturer.id=model.manufacturer_id and model like '%gol%'

 

Olá, acho que tem 2 erros:

 

1 - O nome da coluna é o mesmo nome da tabela lida

2 - Está tentando usar um nome criado "em tempo de execução" como falo, em uma condição where

 

Pro primeiro problema, não tem nem o que falar, mude o nome da coluna

Pro segundo problema, tem duas soluções

 

fazer novamente o CONCAT no WHERE

 

ou fazer um select externo, e nesse select externo você aplicaria o where

 

forma 01
select concat(manufacturer.name, ' ', model.name) as model_001 from manufacturer, model where manufacturer.id = model.manufacturer_id   and concat(manufacturer.name, ' ', model.name) like '%gol%'
 
 
forma 02  
select * from (select concat(manufacturer.name, ' ', model.name) as model_001 from manufacturer, model where manufacturer.id = model.manufacturer_id ) as s1WHERE model_001 like '%gol%'  
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×