Lorsque vous travaillez avec des clauses WHERE complexes, il est souvent nécessaire de comparer un champ ou un ensemble de champs à une liste de valeurs. Dans le cas de la comparaison de tuples, plusieurs options sont disponibles.
La clause IN avec des valeurs codées en dur
Une approche consiste à utiliser des valeurs codées en dur dans la clause IN. Cependant, cela peut s'avérer inefficace pour les grandes tables, car chaque enregistrement nécessite une concaténation et une conversion de chaînes.
Utilisation des clauses VALUE (SQL standard)
Une option plus efficace pour le standard Les bases de données SQL-92 doivent utiliser des clauses VALUES dans l'opérateur IN. Cela implique de mettre la liste des tuples entre parenthèses et d'ajouter le mot-clé VALUES.
SELECT * FROM mytable WHERE (group_id, group_type) IN ( VALUES ('1234-567', 2), ('4321-765', 3), ('1111-222', 5) );
Compatibilité des bases de données
Il est important de noter que cette syntaxe n'est pas prise en charge par tous les SQL. produits. Depuis SQL Server 2022, cette fonctionnalité est considérée comme non planifiée. PostgreSQL et SQLite, cependant, prennent en charge cette syntaxe.
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!