Maison > base de données > tutoriel mysql > Comment interroger efficacement les valeurs de colonnes séparées par des virgules pour des valeurs spécifiques dans Oracle 10g ?

Comment interroger efficacement les valeurs de colonnes séparées par des virgules pour des valeurs spécifiques dans Oracle 10g ?

Barbara Streisand
Libérer: 2024-10-30 11:23:03
original
999 Les gens l'ont consulté

How to Efficiently Query Comma-Separated Column Values for Specific Values in 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,%'
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal