locked
MySQL - Problema com aspas. RRS feed

  • Pergunta

  • Boa tarde pessoal !

    Tenho que fazer um select da forma abaixo mas estou tendo problemas com as aspas do ifnull e da clausula where também. 
    Se verifico o conteúdo da variável @SQLString onde tem '' ele fica como \'. Já tentei aspas duplas usar o replace no final dos comandos e até agora não tive sucesso. 

    Alguém poderia me ajudar  ? 

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    SET @nomecli = '%pedro%';

    SET @SQLString =
    CONCAT(' select cli_id, cli_nome, ifnull(comercial.clt_tel,'' ) comercial, ifnull(celular.clt_tel,'') celular, ',
    ' ifnull(residencial.clt_tel,'') residencial, ifnull(cli_EmailPri,'') EmailPrincipal, ifnull(cli_EmailSec,'') EmailSecundario ',
    ' from   clientes ',
    ' left join clientes_telefone comercial ',
    ' on  comercial.clt_cliid = cli_id ',
    '    and comercial.clt_telid =1 ',
    ' left join clientes_telefone celular ',
    ' on   celular.clt_cliid = cli_id ',
    '    and  celular.clt_telid =2 ',
    ' left join clientes_telefone residencial ',
    ' on   residencial.clt_cliid = cli_id ',
    '    and  residencial.clt_telid =3 ',
    ' left join clientes_atividade ',
    ' on clientes_atividade.cla_cliid = cli_id '
    );

    if(nomecli<>'' or telefone<>'' or atividade<>0 or tipo<>0) then
      SET @SQLString = CONCAT(@SQLString,' where ');

      if (nomecli<>'') then 
         SET @SQLString = CONCAT(@SQLString,' cli_nome like ', @nomecli);
      end if;
    end if;

    Michele Teixeira |.NET|ADO|C#|VB|SQL|ORACLE

    quarta-feira, 10 de dezembro de 2014 15:29

Todas as Respostas

  • Boa tarde,

    Michele, não tenho experiência com o MySQL mas experimente colocar duas aspas simples seguidas dentro da string para obter como resultado uma aspas simples. Ex:

    SET @SQLString =
    CONCAT(' select cli_id, cli_nome, ifnull(comercial.clt_tel, '''' ) comercial,

    ou 

    SET @SQLString =
    CONCAT(' select cli_id, cli_nome, ifnull(comercial.clt_tel,\'\') comercial,
    

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    quarta-feira, 10 de dezembro de 2014 16:23
  • Michele,

    Espero que compreenda, mas estamos em um Fórum focado apenas em questões sobre SQL Server. Acredito que você poderá encontrar a resposta que procura em um Fórum espefícico deste produto.

    Gapimex,

    Obrigado pela boa vontade em ajudar, mas precisamos manter o conteúdo direcionado ao Fórum (ou relacionado há alguma solução com SQL Server e outros produtos). Votei seu post como útil.

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    sexta-feira, 12 de dezembro de 2014 12:19
    Moderador