2012-04-04 20 views
3

Ich versuche nur zu wissen, ist dies die Funktion von MYSQL GROUP_CONCAT, um diese Art von Daten zurückzugeben. Hier ist ein Szenariomysql group_concat Problem

SELECT GROUP_CONCAT(marks) AS `i need only 40 int in this column` FROM marks 

wenn ich diese Abfrage ausführen wird das Ergebnis Show wie diese

enter image description here

Ergebnis erforderlich 40

+0

40? Durchschnitt der 5 Werte? –

+0

nein ich brauche nur 40 es gibt keinen Durchschnitt von 5 @SalmanA –

+4

Warum nur 40? Erklären Sie –

Antwort

2

Try this:

select group_concat(m.marks) from 
    (select distinct marks from marks limit 40) m 
+0

Ich bin mir nicht sicher, ob ich deine Frage richtig verstanden habe ... :-) –

+0

'LIMIT 40'? Meinst du nicht "WHERE marks = 40"? – knittl

+0

@ Knittl: Ich weiß es nicht. Mir scheint, dass OP will nur 40 ganze Zahlen ** und nicht ** nur ganze 40 **. Aber wie ich schon in meinem letzten Kommentar gesagt habe: Weiß nicht, ob man das OP richtig versteht. –

1

Tipps Zuerst: normalisieren Sie Ihre Datenbanktabellen

nun die Lösung für Ihr konkretes Problem: MySQL hat die FIND_IN_SET Funktion, die tun sollten, was Sie wollen:

SELECT marks 
FROM marks 
WHERE FIND_IN_SET('40', marks) 
+0

Danke für das Teilen Ihrer Erfahrung, aber das ist nicht meine Frage –

+0

@Samad: Dann was genau ist deine Frage ?! – knittl

+0

Ich verstehe immer noch nicht.'GROUP_CONCAT' erstellt eine einzelne Zeichenfolge aus mehreren Zeilen, wenn sie in Kombination mit' GROUP BY' verwendet wird. »[...] möchte ein Element aus einem kommagetrennten Feld auswählen« ← welches Element? zuerst? Mitte? letzte? Ein bestimmtes Kriterium erfüllen? – knittl

0

Ihre Syntax

SELECT GROUP_CONCAT(marks) AS `i need only 40 int in this column` FROM marks 

richtig funktioniert. Sie geben GROUP_CONCAT(marks) den Namen i need only 40 int in this column, so zeigt es, was Sie durch Syntax sagen.

„Ergebnis erforderlich 40“

Was bedeutet es bedeutet, wenn Sie Group_concat verwenden und Sie aufnehmen möchten, wo die Marken 40 sind? Warum nicht Abfrage verwenden, wie

select * from table_name where marks='40' 

Wenn Group_concat ein compultion ist, dann verwenden

SELECT GROUP_CONCAT(marks) AS `i need only 40 int in this column` FROM marks where marks='40' 
+0

Ich erkläre nur meine Frage, warum ich diese Formate verwenden –

+0

Ich habe bereits meine Frage erwähnt ist dies möglich oder nicht wenn möglich dann wie –

+0

Ihre Abfrage funktioniert ordnungsgemäß, was es zu haben, so was ist die Frage angekommen ? bedeutet, was Sie im Ergebnis zeigen möchten. –