Bei der Verwendung von MySQL müssen Sie manchmal nach nicht doppelten Datensätzen in einem bestimmten Feld abfragen. Obwohl MySQL das Schlüsselwort „distinct“ bereitstellt, um redundante doppelte Datensätze herauszufiltern und nur einen zu behalten, wird es oft nur verwendet, um nicht doppelte Datensätze zurückzugeben . Zahl, anstatt sie zu verwenden, um alle Werte ohne doppelte Datensätze zurückzugeben. Der Grund dafür ist, dass Unique nur sein Zielfeld und keine anderen Felder zurückgeben kann. Dieses Problem hat mich schon lange beschäftigt. Wenn es nicht mit Unique gelöst werden kann, kann ich es nur mit einer Doppelschleifenabfrage lösen Bei einer großen Datenmenge wirkt sich dies zweifellos direkt auf die Effizienz aus, sodass ich viel Zeit verschwendet habe.
Die Tabelle enthält möglicherweise doppelte Werte. Dies ist kein Problem, aber manchmal möchten Sie vielleicht einfach nur unterschiedliche Werte auflisten. Das Schlüsselwort „distinct“ wird verwendet, um eindeutig unterschiedliche Werte zurückzugeben.
Tabelle A:
Beispiel 1
select distinct name from A
Die Ergebnisse nach der Ausführung sind wie folgt:
Beispiel 2
select distinct name, id from A
Das Ergebnis nach der Ausführung ist wie folgt:
Tatsächlich basiert es auf „ „name+id“ zum Entfernen von Duplikaten, eindeutig Es funktioniert gleichzeitig mit Name und ID. Diese Methode wird von Access und SQL Server gleichzeitig unterstützt.
Beispiel 3: Statistik
select count(distinct name) from A; --表中name去重后的数目, SQL Server支持,而Access不支持 select count(distinct name, id) from A; --SQL Server和Access都不支持
Beispiel 4
select id, distinct name from A; --会提示错误,因为distinct必须放在开头
Andere
Die in der Select-Anweisung angezeigten Felder können nur in der Distinct-Anweisung angezeigt werden durch ein bestimmtes Feld angegeben werden, andere Felder sind nicht möglich. Wenn Tabelle A beispielsweise eine Spalte „Bemerkungen“ enthält und Sie den eindeutigen Namen und das entsprechende Feld „Bemerkungen“ abrufen möchten, ist es nicht möglich, dies direkt über „bemerkungen“ zu tun.