Comment trier les lignes en double dans une table de paires clé-valeur sur plusieurs colonnes dans MySQL ?
P粉115840076
2023-09-05 18:21:40
<p>J'ai donc le tableau suivant de paires clé/valeur, l'utilisateur soumet des données via le formulaire et chaque question du formulaire est ajoutée au tableau ici sous la forme d'une ligne distincte. <code>Submission_id</code> identifie chaque soumission de formulaire. </p>
<pre class="brush:php;toolbar:false;">+----+---------------+---------------- ---+--------+
| identifiant | clé_id de soumission |
+----+---------------+--------------+--------+
| 1 | 10 | fabricant |
| 2 | 10 | modèle 5s |
| 3 | 10 | prénom |
| 4 | 15 | fabricant |
| 5 | 15 | modèle 5s |
| 6 | 15 | prénom |
| 7 | 20 | fabricant |
| 8 | 20 | modèle 5s |
| 9 | 20 | prénom |
+----+---------------+--------------+--------+≪/pré> ;
<p>Comme le montrent les données ci-dessus, les commits avec les identifiants 10 et 15 ont la même valeur (seuls les identifiants de commit sont différents). Cela est essentiellement dû au fait que l'utilisateur a soumis le même formulaire deux fois, il s'agit donc d'un doublon. </p>
<p>J'essaie de trouver un moyen de trier ces tableaux afin que toutes les soumissions en double apparaissent ensemble dans l'ordre. Compte tenu du tableau ci-dessus, j'essaie de construire une requête qui me donne les résultats suivants : </p>
<pre class="brush:php;toolbar:false;">+---------------+
| soumission_id |
+-------------+
10 |
15 |
20 |
+-------------------+</pré>
<p>Je veux donc vérifier si un commit a la même valeur pour les touches <code>fabricant</code>, <code>model</code> Si tel est le cas, ils obtiennent l'identifiant de validation et sont placés les uns à côté des autres dans les résultats. Il y a d'autres clés dans le tableau actuel, mais je souhaite uniquement faire correspondre les doublons en fonction de ces 3 clés (fabricant, modèle, prénom). </p>
<p>J'y réfléchis depuis longtemps et j'essaie de trouver des solutions possibles, mais je n'ai rien trouvé de fiable. </p>
Ceci n'est pas un tableau clé-valeur. Souvent appelé table/relation/schéma entité-attribut-valeur.
Regardez la question, si les tableaux étaient disposés sous la première et la deuxième forme normale, cela serait trivial - il suffit de concaténer les valeurs, de regrouper par ces valeurs et de compter....
ou utilisez Connect....
Ou utilisez le tri et comparez les lignes adjacentes....
La solution est donc simplement de faire en sorte que vos données ressemblent à une relation normale....
J'espère que les solutions basées sur la concaténation et la séquence devraient être évidentes maintenant.