Heim >php教程 >PHP开发 >Verwendung von „distinct' in SQL (Analyse von vier Beispielen)

Verwendung von „distinct' in SQL (Analyse von vier Beispielen)

高洛峰
高洛峰Original
2016-12-13 09:31:292273Durchsuche

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:

Verwendung von „distinct in SQL (Analyse von vier Beispielen)

Beispiel 1

select distinct name from A

Die Ergebnisse nach der Ausführung sind wie folgt:

Verwendung von „distinct in SQL (Analyse von vier Beispielen)

Beispiel 2

select distinct name, id from A

Das Ergebnis nach der Ausführung ist wie folgt:

Verwendung von „distinct in SQL (Analyse von vier Beispielen)

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.


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