none
Utilizar o like em uma coluna RRS feed

  • Pergunta

  • Boa Noite,

     Estou com a seguinte duvida: 

     Select DESCRICAO,* from ITENS /* possui todos os produtos, tento junto ao nome do item a marca*/

    Select marcadescricao, * from MARCA_ITENS  /* possui todas as marcas*/

    Preciso pegar e ligar estas duas tabelas, exemplo pegar todos os produtos da tabela ITENS que possuem em sua descrição a informação que esta da coluna marcadescricao (no meio do nome do produto esta a marca), pois o cliente colocou a marca do produto em sua descrição, desta forma vou informar na marca do produto o que esta em sua descrição. Exemplo tenis nike, sei que a marca do mesmo é nike, tenho esta marca cadastrada  na tabela MARCA_ITENS, portanto queria ter estar informações lado a lado.

    tenis nike | NIKE

    tenis adidas | adidas

    Obs: sou iniciante, espero ter conseguido explicar a pergunta.



    segunda-feira, 23 de maio de 2016 01:42

Respostas

  • Bom dia João,

    Seria muito mais facil na sua tabela de itens ter um campo identificador para marca, tipo Codmar (Codigo da marca), verifique a possibilidade.

    Caso contrario tente algo assim:

    Select I.DESCRICAO,MI.MARCADESCRICAO from ITENS I LEFT JOIN MARCA_ITENS MI ON I.DESCRICAO LIKE '%'+MI.MARCADESCRICAO+'%'

    Espero que te ajude.

    Att

    Reginaldo C. Silva

    • Marcado como Resposta Thales F Quintas segunda-feira, 23 de maio de 2016 19:20
    segunda-feira, 23 de maio de 2016 11:27

Todas as Respostas

  • Bom dia João,

    Seria muito mais facil na sua tabela de itens ter um campo identificador para marca, tipo Codmar (Codigo da marca), verifique a possibilidade.

    Caso contrario tente algo assim:

    Select I.DESCRICAO,MI.MARCADESCRICAO from ITENS I LEFT JOIN MARCA_ITENS MI ON I.DESCRICAO LIKE '%'+MI.MARCADESCRICAO+'%'

    Espero que te ajude.

    Att

    Reginaldo C. Silva

    • Marcado como Resposta Thales F Quintas segunda-feira, 23 de maio de 2016 19:20
    segunda-feira, 23 de maio de 2016 11:27
  • Concordo e ressalto a necessidade de se colocar um campo identificador, como foi dito "Codmar" - sendo que para isso existe a necessidade de uma tabela que contenha as marcas e o campo Codmar seja uma chave estrangeira. Essa é a melhor solução.

    A pesquisa por like vai depreciar o desempenho tanto do seu servidor de banco de dados quanto da velocidade de renderização dos resultados. Se for possível, e isso só você vai saber dizer, você pode trazer os dados da tabela e armazenar numa matriz/lista, por exemplo. O filtro será aplicado pelo seu código do lado servidor/cliente como C# ou Javascript, por exemplo - Isso vai ajudar na velocidade de pesquisa e performar melhor o seu banco de dados.

    Abs

    segunda-feira, 23 de maio de 2016 12:30
  • Bom dia Thales,

    No momento minha tabela ITENS ja possui a informação id_codmarca, porem como comentei precisava ligar as tabelas para dai pegar o id_codmarca da tabela MARCA_ITENS e setar na tabela ITENS, com o seu comando deu certinho a ligação das tabelas.

    Muito Obrigado pela ajuda!

    terça-feira, 24 de maio de 2016 14:57
  • Bom dia Gilberto,

     Realmente não podemos deixar a informação da marca atraves apenas desta consulta, pois como meu cliente tem mais de 15 mil itens, teria um grande lentidão nesta consulta, porem precisei do comando sql apenas para informar uma vez a marca, pois o meu usuario não informou a marca no campo marca mas colocou na descrição, sendo assim com o comando acima eu joguei a marca da descrição no campo marca.

    Mas mesmo assim obrigado pela dica.


    terça-feira, 24 de maio de 2016 15:01