Renvoi de NULL lorsqu'aucun enregistrement n'est trouvé
Lors de l'utilisation de SQL pour récupérer des données d'une base de données, il est courant de rencontrer des situations dans lesquelles l'enregistrement souhaité peut n'existe pas. Par défaut, de telles situations entraînent une erreur de ligne introuvable. Cependant, il existe des moyens de gérer cela et de renvoyer une valeur spécifique à la place.
Encapsulation de sous-requête
Une méthode simple mais efficace pour renvoyer une valeur nulle lorsqu'aucun enregistrement n'est trouvé consiste à encapsuler la requête dans une sous-requête. Cette technique transforme l'erreur "row-not-found" en une valeur nulle.
Voici un exemple :
SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber;
Considérations de compatibilité
Cette méthode a été testée et vérifiée pour fonctionner dans PostgreSQL, SQLite, SQL Server, MySQL et Firebird. Cependant, de légères variations peuvent être nécessaires pour d'autres systèmes de bases de données.
Par exemple, dans Oracle, il est nécessaire d'effectuer une requête à partir d'une table factice à 1 ligne appelée DUAL :
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM DUAL;
DB2 nécessite un approche similaire, en utilisant SYSIBM.SYSDUMMY1 comme table factice :
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM SYSIBM.SYSDUMMY1;
En encapsulant la requête dans un sous-requête, vous pouvez gérer efficacement l'absence d'enregistrements et renvoyer une valeur nulle au lieu de faire face à une erreur de ligne introuvable.
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!