Maison > Article > base de données > Comment interroger efficacement les valeurs de colonnes séparées par des virgules pour des valeurs spécifiques dans Oracle 10g ?
Requêtes pour les valeurs de colonnes séparées par des virgules avec une valeur spécifique
Dans un tableau où une colonne contient des valeurs séparées par des virgules représentant des catégories, il y a est un besoin de récupérer des lignes en fonction de la présence d'une catégorie particulière. Bien que l'utilisation des instructions LIKE puisse suffire, des problèmes d'efficacité et de précision subsistent.
La fonction FIND_IN_SET(), bien que documentée dans la documentation Oracle, n'est pas prise en charge dans la version 10g. Par conséquent, une approche alternative est nécessaire pour interroger efficacement les valeurs des colonnes séparées par des virgules.
Une solution employant LIKE avec des modifications pour tenir compte des correspondances partielles et des virgules est la suivante :
select * from YourTable where ',' || CommaSeparatedValueColumn || ',' LIKE '%,SearchValue,%'
Cependant , cette requête est susceptible de rencontrer des problèmes de performances dus à l'utilisation de LIKE. De plus, il suppose que les valeurs ne contiennent ni espaces ni virgules, ce qui n'est pas toujours le cas.
Pour atténuer ces limitations, une solution plus efficace et plus fiable consiste à restructurer la table en introduisant une table enfant pour les catégories et une table de réticulation pour établir des relations avec la table principale. Cette approche offre de meilleures performances et précision pour interroger des valeurs de colonnes séparées par des virgules avec des valeurs spécifiques.
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!