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)
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!