MySQL select * mit eindeutiger ID

Lesezeit: 2 Minuten

Ich versuche, eine Zeile mit einer eindeutigen ID auszuwählen, aber alle Felder zurückzugeben.

SELECT * DISTINCT(ID) FROM table WHERE ...

Ich brauche schließlich die ID, die Stadt, das Bundesland und die Postleitzahl. Wie kann ich Zeilen abrufen, die keine doppelten IDs sind, und alle Felder in mein mysql_fetch_array zurückgeben?

Ich habe folgendes versucht:

SELECT * DISTINCT(ID) FROM table WHERE ...

SELECT DISTINCT ID * FROM table WHERE ...

SELECT ID,City,State,Zip DISTINCT ID FROM ...

SELECT ID,City,State,Zip DISTINCT(ID) FROM ...

Ich habe hier andere Fragen gelesen und keine scheint zu helfen. Danke im Voraus!

  • DISTINCT gibt einfach eindeutige IDs aus der Tabelle zurück; was versuchst du genau zu machen?

    – Burhan Khalid

    22. August 2012 um 14:38 Uhr

  • Ich brauche mehr als nur die IDs … danke

    – Nicht Jay

    22. August 2012 um 14:38 Uhr

  • Welcher Datensatz sollte also mit derselben ID ausgewählt werden?

    – xdazz

    22. August 2012 um 14:38 Uhr

  • wenn es mehrere Datensätze desselben gibt ID verschiedene Adressen haben … welche Adresse möchten Sie dann? zufällig?

    – Poncha

    22. August 2012 um 14:39 Uhr

  • Ich wollte 4 Zeilen mit unterschiedlichen IDs auswählen, für die ich die Stadt, das Bundesland und die Postleitzahl verwenden würde. Ich musste sicherstellen, dass doppelte IDs ignoriert wurden, da ich die zurückgegebenen Daten sortiere. Bei IDs mit unterschiedlichen Adressen sollte es egal sein, welche Adresse angezeigt wird, ich möchte nur keine Duplikate. Danke für eure Hilfe, Problem abgewendet.

    – Nicht Jay

    22. August 2012 um 14:51 Uhr

Benutzer-Avatar
mellamokb

Versuchen Sie es mit GROUP BY:

  select id, city, state, zip
    from mytable
group by id

Beachten Sie, dass dies jeweils eine willkürliche Adresse zurückgibt id wenn es Duplikate gibt.

Demo: http://www.sqlfiddle.com/#!2/c0eba/1

  • würde ich die Gruppe vor oder nach dem WO hinzufügen?

    – Nicht Jay

    22. August 2012 um 14:42 Uhr

  • @NotJay – Gruppieren nach geht nach dem wo

    – Eric Petroelje

    22. August 2012 um 14:42 Uhr

  • @NotJay: Lassen Sie mich nur darauf hinweisen, dass dies eine atypische Verwendung von ist GROUP BY. Der Hauptzweck ist die Aggregation, d. h. das Finden von MIN, MAX, SUM oder anderen zusammenfassenden Werten pro Gruppe. Zum Beispiel könnten Sie verwenden GROUP BY um die Ergebnisse der Verkaufsdaten nach Monat zu kombinieren, um monatliche Summen und Durchschnittswerte zu generieren. Das nutze ich aus mysql ermöglicht es Ihnen, in einer Abfrage auf Spalten zu verweisen, die nicht gruppiert sind, was in den meisten anderen Datenbanksystemen ein undefiniertes Verhalten (nicht zulässig) ist. Prost!

    – mellamokb

    22. August 2012 um 14:52 Uhr


  • @mellamokb: guter Punkt, du solltest es der Antwort hinzufügen, anstatt es in einem Kommentar zu hinterlassen!

    – Niko

    22. August 2012 um 16:59 Uhr

  • Es gibt mir immer alle Felder zurück und verwendet dieselbe Abfrage … irgendeine Idee, wie das geht?

    – jpganz18

    30. Oktober 2014 um 15:39 Uhr

1186440cookie-checkMySQL select * mit eindeutiger ID

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy