Wie sortiere ich doppelte Zeilen in einer Schlüssel-Wert-Paar-Tabelle in mehreren Spalten in MySQL?
P粉115840076
2023-09-05 18:21:40
<p>Ich habe also die folgende Tabelle mit Schlüssel/Wert-Paaren, der Benutzer übermittelt Daten über das Formular und jede Frage im Formular wird hier als separate Zeile zur Tabelle hinzugefügt. <code>Submission_id</code> identifiziert jede Formularübermittlung. </p>
<pre class="brush:php;toolbar:false;">+----+---------------+----------- ---+--------+
|. id |. Einreichungs-ID |
+----+---------------+--------------+--------+
|. 10 |
|. 2 |. 10 |
|. 3 |. 10 |
|. 4 |. 15 |
|. 5 |. 15 |
|. 6 |. 15 |
|. 7 |. 20 |
|. 8 |. 20 |
|. 9 |. 20 |
+----+---------------+--------------+--------+</pre> ;
<p>Wie aus den obigen Daten ersichtlich ist, haben die Commits mit den IDs 10 und 15 den gleichen Wert (nur die Commit-IDs sind unterschiedlich). Dies liegt im Wesentlichen daran, dass der Benutzer dasselbe Formular zweimal eingereicht hat, es sich also um ein Duplikat handelt. </p>
<p>Ich versuche eine Möglichkeit zu finden, diese Tabellen so zu sortieren, dass alle doppelten Einreichungen in der richtigen Reihenfolge angezeigt werden. Anhand der obigen Tabelle versuche ich, eine Abfrage zu erstellen, die folgende Ergebnisse liefert: </p>
<pre class="brush:php;toolbar:false;">+---------------+
|. Einreichungs-ID |
+-------------+
|. 10 |
|. 15 |
|. 20 |
+---------------+</pre>
<p>Ich möchte also prüfen, ob ein Commit den gleichen Wert für die Schlüssel <code>manufacturer</code>, <code>model</code> hat. Wenn ja, erhalten sie die Commit-ID und werden in den Ergebnissen nebeneinander platziert. Es gibt andere Schlüssel in der tatsächlichen Tabelle, aber ich möchte nur Duplikate basierend auf diesen drei Schlüsseln (Hersteller, Modell, Vorname) abgleichen. </p>
<p>Ich habe lange darüber nachgedacht und versucht, mögliche Lösungen zu finden, habe aber nichts Verlässliches gefunden. </p>
这不是一个键值表。通常被称为实体-属性-值表/关系/模式。
看问题,如果表按照常规的第一和第二范式排列,这将是微不足道的 - 只需对值进行连接,按照这些值进行分组,并进行计数....
或者使用连接....
或者使用排序和比较相邻行....
所以解决方案就是简单地使您的数据看起来像一个正常的关系....
希望连接和基于序列的解决方案现在应该很明显。