Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

503
Visualizações
¿Por qué MySQL 8 IF e IFNULL devuelven un resultado BLOB al probar una variable con valor NULL?

Nota: He movido la esencia de esta pregunta aquí después de haber aprendido algo de lo que está sucediendo pero aún quiero entender. (En esencia, ISNULL y COALESCE se comportan de manera inusual cuando una variable no está definida o se ha establecido en NULL antes de definirse).

Debo estar perdiendo algo muy simple, pero no veo ninguna respuesta a una pregunta anterior similar. Quiero usar un valor predeterminado si una variable no está configurada, pero no puedo ver cómo hacerlo.

 SET @x = NULL; SELECT IFNULL(NULL, 5), IFNULL(@x,5), IF(@x IS NULL, 5, @x); -- gives 5, BLOB, BLOB

Leí que COALESCE es la función correcta para usar aquí, pero COALESCE(@x,5) también da BLOB.

¿Qué me estoy perdiendo? ¿No es posible, en efecto, decir x = x O 5?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Esto es extraño. Usando MySQL Workbench, comenzará a funcionar si ejecuta los 3 bloques:

 SET @x = NULL; SELECT IFNULL(NULL, 5), IFNULL(@x,5), IF(@x IS NULL, 5, @x); -- 5, blob, blob SET @x = 'TEST'; SELECT IFNULL(NULL, 5), IFNULL(@x,5), IF(@x IS NULL, 5, @x); -- 5, TEST, TEST SET @x = NULL; SELECT IFNULL(NULL, 5), IFNULL(@x,5), IF(@x IS NULL, 5, @x); -- 5, 5, 5

AFAIK, no puede definir un tipo para una variable definida por el usuario, pero MySQL no parece saber qué hacer con esta variable hasta que primero la configura en algo que no es nulo. Si ejecuto su declaración dentro de sqlDeveloper, generará 77686174 en lugar de 'BLOB'.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda