2009-07-30 9 views
0

Ich fragte eine ähnliche Frage gestern, aber jetzt habe ich eine leichte Wendung. Da ich einer Antwort bereits zugestimmt habe, habe ich beschlossen, eine neue Frage zu stellen.Update mehrere Zeilen Mysql von PHP - leichte Twist

Hier ist, was ich versuche zu tun: Wählen Sie eine beliebige Anzahl von Zeilen, aber ein Limit für die Anzahl der ausgewählten Zeilen eines Feldes.

$query = "SELECT test_id, field1, field2 FROM tablename WHERE field1 = 'string' LIMIT 5" 

Also hier ist das Problem: Ich habe einen max von einem Ergebnis von jedem ‚test_id‘ will, also, wenn eine Zeile mit test_id 1 ausgewählt wird, dann wird es keine anderen möglichen Ergebnisse mit test_id überspringt 1.

Irgendwelche Ideen?

EDIT: Würde GROUP BY test_id LIMIT 5 ... begrenzen die Gesamtzahl der Ergebnisse, oder diejenigen mit der gleichen test_id. Ich möchte jedem test_id bis 1, mit insgesamt nicht mehr als 5.

Dank begrenzen,
Michael

Antwort

1

Wenn Sie GROUP BY test_id verwenden, MySQL eine der Reihen nehmen die Werte zu holen .

Funktioniert nicht mit allen RDBMS (z. B. SQL Server), da andere eine Aggregationsfunktion für die SELECTED-Felder benötigen, die nicht in der GROUP BY-Klausel enthalten sind.

+0

Also, wenn ich eine GROUP BY test_id haben ... gefolgt von einem LIMIT 5 Ist es zu insgesamt 5 Ergebnisse begrenzen, oder schränkt sie die pro test_id – Dirk

+0

das Gesamtergebnis beibehalten Ergebnisse werden fünf Zeilen nicht überschreiten. Es wird eine unbestimmte (aber nicht zufällige) Zeile * pro * test_id ausgewählt –