


Comment regrouper les résultats MySQL par données de champ : un guide complet
Nov 07, 2024 am 07:09 AMRegroupement des résultats MySQL par données de champ : une approche globale
Lors de l'organisation des données dans une base de données MySQL, il devient souvent nécessaire de regrouper les résultats en fonction sur des valeurs de champs spécifiques. Ceci peut être réalisé à l'aide de requêtes SQL ou de code PHP.
Utilisation de requêtes SQL
Pour le premier exemple, où vous souhaitez regrouper des données en fonction du « Groupe » champ, vous pouvez utiliser une simple requête SQL comme celle-ci :
SELECT Group, GROUP_CONCAT(Name) AS Names FROM table_name GROUP BY Group
Cette requête concatènera tous les noms associés à chaque groupe à l'aide de la fonction GROUP_CONCAT() et renverra les résultats regroupés par le champ "Groupe".
Utilisation de PHP
Si vous préférez utiliser PHP, vous pouvez vous connecter à la base de données et exécuter la requête comme suit :
<code class="php">$dbc = new MySQLi(DBHOST, DBUSER, DBPASS, DB); $result = $dbc->query("SELECT Group, GROUP_CONCAT(Name) AS Names FROM table_name GROUP BY Group"); while ($row = $result->fetch_assoc()) { $names = explode(",", $row["Names"]); echo "<tr><td>{$row["Group"]}</td><td>{$names[0]}</td></tr>"; // Print the first name foreach ($names as $name) { // Print remaining names echo "<tr><td></td><td>{$name}</td></tr>"; } }</code>
Groupes imbriqués avec plusieurs tables
Pour l'exemple plus complexe où vous avez plusieurs tables et des valeurs "coef" supplémentaires, vous pouvez utiliser une requête imbriquée ou une combinaison de SQL et PHP pour obtenir l'objectif souhaité. regroupement.
Solution PHP possible
Voici une solution PHP possible pour ce scénario :
<code class="php">$dbc1 = new MySQLi(DBHOST, DBUSER, DBPASS, DB1); $dbc2 = new MySQLi(DBHOST, DBUSER, DBPASS, DB2); $groups_query = "SELECT Group, GROUP_CONCAT(Name) AS Names FROM table1 GROUP BY Group"; $coefs_query = "SELECT meta_value, title, group FROM table2"; $groups_result = $dbc1->query($groups_query); $coefs_result = $dbc2->query($coefs_query); while ($group = $groups_result->fetch_assoc()) { echo "<tr><td>{$group["Group"]}</td><td>{$group["Names"]}</td></tr>"; $coefs_result->data_seek(0); // Reset pointer to beginning of coefs result set while ($coef = $coefs_result->fetch_assoc()) { // Loop through coefs result set if ($coef["group"] == $group["Group"]) { echo "<tr><td></td><td>{$coef["title"]}</td><td>{$coef["meta_value"]}</td></tr>"; } } }</code>
Cette solution combine une requête SQL pour récupérer les groupes et les noms, et utilise PHP pour parcourir les résultats et récupérer les coefs et les titres de la deuxième table.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
