Maison > développement back-end > tutoriel php > Comment récupérer efficacement des enregistrements basés sur plusieurs valeurs dans une seule colonne de base de données ?

Comment récupérer efficacement des enregistrements basés sur plusieurs valeurs dans une seule colonne de base de données ?

Mary-Kate Olsen
Libérer: 2025-01-04 22:40:42
original
605 Les gens l'ont consulté

How to Efficiently Retrieve Records Based on Multiple Values in a Single Database Column?

Récupération d'enregistrements basés sur plusieurs valeurs de colonnes

Dans les scénarios où une seule colonne de base de données contient plusieurs valeurs, exécuter des requêtes pour récupérer des enregistrements basés sur celles-ci les valeurs peuvent être un défi. Ceci est illustré par la nécessité de trouver les parents qui ont un enfant nommé Alex.

L'approche traditionnelle consistant à utiliser "WHERE children = 'Alex'" n'est pas réalisable en raison de la présence de plusieurs noms dans la colonne des enfants. Des alternatives telles que "WHERE children LIKE '%Alex%'" renvoient des résultats plus larges, y compris les noms commençant par Alex (par exemple, Alexandre). Pour faire correspondre précisément des valeurs uniques, la normalisation du schéma est recommandée.

La normalisation implique la création d'un tableau séparé avec une ligne distincte pour chaque enfant. En joignant cette table à la table parent, il devient possible d'identifier les parents avec des enfants spécifiques.

Pour les scénarios où la normalisation n'est pas une option, une autre technique consiste à utiliser la fonction FIND_IN_SET :

WHERE FIND_IN_SET('Alex', children)
Copier après la connexion

Cette fonction recherche une sous-chaîne spécifique (« Alex » dans ce cas) dans la colonne enfants et renvoie un index numérique si elle est trouvée. Les enregistrements correspondants auront un index supérieur à 0, facilitant un filtrage efficace.

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