2009-07-30 4 views
0

J'ai posé une question similaire hier, mais maintenant j'ai une légère torsion. Comme j'ai déjà donné crédit à une réponse, j'ai décidé de créer une nouvelle question.Mise à jour de plusieurs lignes Mysql de php - Slight Twist

Voici ce que j'essaie de faire: Sélectionnez un nombre arbitraire de lignes, mais en plaçant une limite sur le nombre de lignes sélectionnées d'un champ.

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

Alors, voici le problème: Je veux un maximum d'un résultat de chaque « test_id », donc si une ligne est sélectionnée avec test_id 1, alors il sautera d'autres résultats possibles avec test_id 1.

Des idées?

EDIT: Est ce que GROUP BY test_id LIMIT 5 ... limite le nombre total de résultats, ou ceux ayant le même test_id. Je voudrais limiter à chaque test_id à 1, avec un total de plus de 5.

Merci,
Michael

Répondre

1

Si vous utilisez GROUP BY test_id, MySQL prendra une des lignes pour aller chercher les valeurs .

Ne fonctionne pas avec tous les SGBDR (serveur SQL par exemple), car d'autres nécessitent une fonction d'agrégation sur les champs SELECTed qui ne figurent pas dans la clause GROUP BY.

+0

Donc, si je GROUP BY test_id ... suivi d'une limite de 5 -t-il limiter à 5 résultats totaux, ou ne limite les résultats retenus par test_id – Dirk

+0

le résultat total ne dépassera pas cinq lignes. il va choisir une ligne indéterministe (mais pas aléatoire) * per * test_id –

Questions connexes