MySQL: Trabalhando com IF no select

Sintaxe:
IF(expressao,expr_true,expr_false)

Exemplo simples:

SELECT IF(1 > 2,'true','false'); -- false
SELECT IF(1 = 1,' true','false'); -- true

Outro exemplo:
A coluna tipo possui os valores 1 ou 2, porém não queremos mostrar como resultado os números e sim um resultado personalizado. Quando for tipo 1 aparecerá no resultado a palavra interno e quando for tipo 2 a palavra externo.

O IF é bem útil para estes casos. Acompanhe o código abaixo:

Tabela: servicos
 
id descricao tipo
1  pintura   1
2  reforma   2
3  trocar    1
 
SELECT id, descricao, IF(tipo=1,"Interno","Externo") as tipo FROM servicos

Como ficaria o resultado:

id descricao tipo
1  pintura   Interno
2  reforma   Externo
3  trocar    Interno

Maiores informações acesse aqui.

4 comentários em “MySQL: Trabalhando com IF no select

  • 8 de junho de 2018 em 14:03
    Permalink

    simples, facil, pratico e rapido, vlw!

    Resposta
  • 3 de setembro de 2019 em 10:54
    Permalink

    O que eu preciso é verificar um campo se outro campo do select for ‘S’ ou outro campo se não for ‘S’, por exemplo:

    select if(b.opcao = ‘S’, est_pais, est_estado) = tipo

    teria que funcionar assim:
    a) se b.opcao = ‘S’:
    —> if est_pais = tipo

    b) se b.opcao ‘S’:
    —> if est_estado = tipo

    Deu para entender?

    Resposta
    • 5 de setembro de 2019 em 19:57
      Permalink

      Fala Daniel,

      da forma como quer acredito que só funcione no where

      select * from tabela
      where if(b.opcao = ‘S’, est_pais, est_estado) = tipo
      Resposta

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *