2009-06-12 4 views
1

Ich möchte alle Datensätze von First_Name, Nachname, Vorname Nachname in einer MySQL-Abfrage abrufen.Wie hole ich Werte mit einer MySQL-Abfrage?

Zum Beispiel sieht

Mytable wie folgt aus:

Gnaniyar Zubair, Frankyn Albert, John Mathew, Suhail Ahmed 

Gib mir die SQL:

rec Id  First Name  Last Name 
1   Gnaniyar  Zubair 
2   Frankyn  Albert 
3   John   Mathew 
4   Suhail   Ahmed 

Output so sein sollte.

Antwort

6

Wenn dies die in der Abfrage erfolgen müssen Sie GROUP_CONCAT verwenden können, aber wenn man von etwas Gruppierung ist es eine ziemlich dumme Abfrage und die Verkettung sollte wirklich auf dem Client erfolgen.

SELECT GROUP_CONCAT(FirstName + ' ' + LastName 
        ORDER BY FirstName, LastName 
        SEPARATOR ', ') AS Names 
FROM People; 
+0

Danke Blixt ... Ich bekomme Nachricht, dass 1 Zeile abgerufen ... aber nichts wird angezeigt außer "Blob" –

+0

In der Tat ist es eine Art von BLOB (Binary Large OBject), weil es möglicherweise sehr lang werden kann. Es zeigt sich als BLOB, weil Ihre Client-Schnittstelle dies berücksichtigt und das Feld ausblendet. – Blixt

0

Es geht nicht darum, eine Zeile mit allen Datensätzen zu erhalten, sondern eine Frage der Darstellung der Daten. Daher schlage ich vor, eine einfache SELECT-Abfrage zu erstellen, die benötigten Datensätze zu nehmen und sie dann in der Ansichtsschicht anzuordnen, wie Sie möchten.

Auf der anderen Seite, warum müssen Sie diese Datensatzverkettung auf SQL-Ebene und nicht auf Ansichtsebene lösen?

0

Wenn Sie sie nur in einer Zeile erhalten möchten, verwenden Sie Ihre Datenbank wahrscheinlich nicht richtig.

Wenn Sie nur die Vor- und Nachnamen miteinander verbinden wollen, ist das einfach:

SELECT CONCAT(`First Name`, ' ', `Last Name`) FROM mytable 
+0

Hallo Freunde, Danke für die sofortige Antwort. Das ist richtige Abfrage. aber alle 4 records werden mit dieser concatanation angezeigt ... ich möchte alle in einer einzeiligen linie bekommen. Ihre Anfrage wird wie geben Ausgang, Gnaniyar Zubair Frankyn Albert, John Mathew, Suhail Ahmed (insgesamt 4) Aber ich möchte wie nur ein Datensatz erhalten, Gnaniyar Zubair, Frankyn Albert , John Mathew, Suhail Ahmed Vielen Dank im Voraus - Gnaniyar Zubair –

+0

wie gesagt, Sie verwenden nicht Ihre Datenbank ordnungsgemäß. dachte, es scheint, dass das GROUP_CONCAT-Konstrukt helfen könnte, wie andere vorgeschlagen haben. – nickf

Verwandte Themen