Maison  >  Article  >  base de données  >  Comment renvoyer les valeurs par défaut pour les jeux de résultats vides dans les requêtes de base de données ?

Comment renvoyer les valeurs par défaut pour les jeux de résultats vides dans les requêtes de base de données ?

DDD
DDDoriginal
2024-10-28 09:45:02342parcourir

How to Return Default Values for Empty Result Sets in Database Queries?

Renvoi de valeurs par défaut avec des ensembles de résultats vides

Lors de l'interrogation d'une base de données, il est courant de gérer des scénarios dans lesquels aucune ligne correspondante n'est trouvée. Pour éviter les résultats vides, vous pouvez renvoyer une valeur par défaut à la place.

Dans votre cas, vous souhaitez sélectionner le prochain élément planifié pour un flux. Si aucun élément n'est planifié, vous souhaitez une valeur par défaut pour garantir que le flux lit le contenu.

Vous avez essayé d'utiliser COALESCE et IFNULL sans succès. Cependant, il existe une approche légèrement différente qui fonctionnera :

<code class="sql">SELECT IFNULL(MIN(`file`), 'default.webm') `file` 
FROM `show`, `schedule` 
WHERE `channel` = 1 AND `start_time` <= UNIX_TIMESTAMP() 
  AND `start_time` > UNIX_TIMESTAMP()-1800 AND `show`.`id` = `schedule`.`file` 
ORDER BY `start_time` DESC LIMIT 1</code>

En utilisant MIN() comme fonction d'agrégation, vous vous assurez qu'une valeur NULL est renvoyée lorsqu'aucune ligne n'est sélectionnée. Ensuite, IFNULL ou COALESCE peuvent remplacer NULL par votre valeur par défaut, 'default.webm' dans ce cas.

Cette méthode vous permet de récupérer une valeur par défaut si la requête ne renvoie aucun résultat, gérant efficacement l'absence de correspondance lignes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn