Heim >Datenbank >MySQL-Tutorial >Wie finde ich doppelte Score-Werte über bestimmte IDs hinweg in MySQL?

Wie finde ich doppelte Score-Werte über bestimmte IDs hinweg in MySQL?

Barbara Streisand
Barbara StreisandOriginal
2025-01-22 20:56:10304Durchsuche

How to Find Duplicate Score Values Across Specific IDs in MySQL?

Tricks zum Abrufen doppelter Spaltenwerte in MySQL

In einer MySQL-Datenbank müssen Sie möglicherweise die Zeilen abrufen, die in einer bestimmten Spalte denselben Wert haben. Betrachten Sie die folgende Tabelle, in der die Spalte „Score“ Werte enthält, die verschiedenen „IDs“ zugeordnet sind:

ID 分数
1 95
2 100
3 88
4 100
5 73

Angenommen, Sie möchten die Ergebnisse abrufen, die in zwei Zeilen mit der „ID“ gleich 2 und 4 auftreten.

Lösung:

Um dies mit MySQL zu erreichen, können Sie die folgende Abfrage verwenden:

<code class="language-sql">SELECT score
FROM t
GROUP BY score
HAVING COUNT(*) > 1 AND SUM(CASE WHEN id = 2 THEN 1 ELSE 0 END) > 0 AND SUM(CASE WHEN id = 4 THEN 1 ELSE 0 END) > 0;</code>

Diese Abfrage führt die folgenden Schritte aus:

  1. GROUP BY: Es gruppiert Zeilen basierend auf der Spalte „Score“.
  2. *Count (COUNT()):** Es zählt die Anzahl der Zeilen in jeder Gruppe und stellt so sicher, dass nur doppelte Bewertungen zurückgegeben werden.
  3. Bedingte Zählung (SUM(CASE WHEN ... END)): Zählt jeweils die Anzahl der Zeilen mit ID 2 und ID 4 in jeder Gruppe.
  4. HAVING-Klausel: Die HAVING-Klausel stellt sicher, dass nur Scores mit Score-Zählungen größer als 1 zurückgegeben werden und Scores mit ID 2 und ID 4 beide größer als 0 sind.

In diesem Fall wäre das Ergebnis:

<code>分数
100</code>

Diese Abfrage ruft effektiv die Score-Werte ab, die in beiden Zeilen mit „ID“ gleich 2 und 4 auftreten. Die verbesserte Abfrage drückt Filterbedingungen klarer aus und vermeidet mögliche Logikfehler.

Das obige ist der detaillierte Inhalt vonWie finde ich doppelte Score-Werte über bestimmte IDs hinweg in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn