Maison >base de données >tutoriel mysql >Comment éviter ORA-01795 : alternatives à plusieurs clauses IN ?
Approches alternatives pour gérer "ORA-01795 : expressions maximales dans une erreur de liste"
Lorsque vous rencontrez le message "ORA-01795 : nombre maximum des expressions dans une liste est une erreur de 1 000", le conseil standard est de modifier la requête et d'inclure plusieurs clauses IN comme indiqué dans la réponse. Cependant, explorons une autre méthode alternative pour contourner cette limitation.
Une alternative consiste à utiliser une table temporaire, comme le montre la requête suivante :
CREATE TABLE temp_table AS SELECT DISTINCT name FROM table1 WHERE name IN ('value1', 'value2', ..., 'value10000+'); SELECT field1, field2, field3 FROM table1 WHERE name IN (SELECT name FROM temp_table); DROP TABLE temp_table;
Cette méthode présente l'avantage de permettant à l'ensemble des valeurs d'être utilisées dans une seule clause IN, sans avoir besoin de le diviser en plusieurs clauses. De plus, elle est réutilisable, car la table temporaire peut être conservée pour de futures requêtes.
Bien que les deux approches soient efficaces pour résoudre l'erreur « ORA-01795 », le choix entre elles dépend des exigences et contraintes spécifiques de l'environnement de base de données.
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!