Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafael C Bueno

If dentro de If

Recommended Posts

Bom dia pessoal, seguinte estou tentando fazer um if dentro de outro

tem como ??

como eu poderia resolver isso?

SELECT DISTINCT `Produto`.`id`,
       `Produto`.`descricao`,
       IF( (`Produto`.disponibilidade != 'ID'),
           (
                            IF( (`Produto`.estoque == 0),
                                    (
                                       IF( ('N' == 'N'), (1), (0) )
                                         ), (0)
                                  )
                  ),(0)
           )
       FROM produtos as `Produto`
       WHERE `Produto`.ativo = 'S'
             AND (`Produto`.`descricao` LIKE '%%' OR
`Produto`.`descricao_curta` LIKE '%%'
                 OR `Marca`.`descricao` LIKE '%%' OR
`fornecedores`.`fantasia` LIKE '%%')
             LIMIT 0, 12;

Erro retornado

You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near '== 0),
                                    (
                                       IF( ('N' == 'N'), (1), (0) )
                                         )' at line 5

Compartilhar este post


Link para o post
Compartilhar em outros sites

If Condicao Then
   Begin
      If Condicao Then
         Begin
         End
   End

meu amigo como eu posso simular o retorno de um valor para testar

se eu colocar

If Condicao Then
   Begin
      If Condicao Then
         Begin
           0; 
         End
      ELSE
           0;
   End

assim não funfa

 

to tentando na minha query


SELECT DISTINCT `Produto`.`id`,
       `Produto`.`descricao`,	
       IF (`Produto`.id  = 4153) THEN
       Begin
         1
	   END
       FROM produtos as `Produto`
       WHERE `Produto`.id IN (4153, 1091, 1092, 1093) AND `Produto`.disponibilidade != "ID"
       LIMIT 0, 12;

erro

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') THEN
       Begin
         1
	   END
       FROM produtos as `Produto`
  ' at line 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não mano.

 

SELECT DISTINCT `Produto`.`id`,
       `Produto`.`descricao`,   
       FROM produtos as `Produto`
       WHERE `Produto`.id IN (4153, 1091, 1092, 1093) AND `Produto`.disponibilidade != "ID"
       LIMIT 0, 12;

       IF (`Produto`.id  = 4153) THEN
          Begin
            1
          END

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tiver um Else dentro usa o Begin End tbm

 

If Condicao Then

   Begin

   -- Instruções

   If Condicao Then
      Begin
    
   -- Instruções
  
      End
   Else
      Begin

   -- Instruções

      End

   End

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Dee: Ele não está se referindo a estrutura condicional IF/ELSE que usamos em procedure, trigger, ..., mas sim a função que podemos chamar no SELECT.

 

@Rafael C Bueno: A comparação está incorreta, você precisa apenas usar '=', não '=='.

 

De resto, você está certo, não tem problema chamar IF() como parâmetros dela mesma, afinal o que importa no fim de tudo é o retorno dela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.