Ordre d'affichage d'une requete.

Ordre d'affichage d'une requete. - SQL/NoSQL - Programmation

Marsh Posté le 30-08-2002 à 15:02:22    

Je génère une requete en php:
 
SELECT COUNT(*), MGSROO_ID FROM T_REPLY_RPY WHERE MGSROO_ID = 7 OR MGSROO_ID = 16 OR MGSROO_ID = 8 OR MGSROO_ID = 11 OR MGSROO_ID = 14 OR MGSROO_ID = 1 OR MGSROO_ID = 2 OR MGSROO_ID = 4 GROUP BY MGSROO_ID
 
Et donc, au maximum il y aura 20 MGSROO_ID = x, puisqu'on affiche au maximum 20 messages...
 
Mais, il y a deux problèmes qui viennent se greffer à cette solution:
1/ Quand il y a 0 réponses, ca marque pas 0, ca marque rien du tout!, bon à la limite je peux m'en sortir avec un algo, c po grave
2/ Plus grave, ca ne sort pas les réponses désirés dans le bon ordre, la ca me donne qqchoses dans cet ordre:


+----------+-----------+
| COUNT(*) | MGSROO_ID |
+----------+-----------+
|        1 |         1 |
|       18 |         2 |
|        8 |         4 |
|        5 |         7 |
|       33 |         8 |
|       19 |        11 |
+----------+-----------+

 
 
 
Alors que je le voudrais dans cet ordre:
7, 16, 8, 11, 14, 1, 2, 4
 
Comment je peux faire pour l'avoir dans l'ordre des "OR" ?
 
Merci.
 [cpp]


Message édité par cult le 30-08-2002 à 15:03:07
Reply

Marsh Posté le 30-08-2002 à 15:02:22   

Reply

Marsh Posté le 30-08-2002 à 16:11:35    

Essaye ça  :eek2:  
 
SELECT COUNT(*), MGSROO_ID,
decode(MGSROO_ID,7,1,16,2,8,3,11,4,14,5,1,6,2,7,4,8,0)  
FROM T_REPLY_RPY WHERE MGSROO_ID = 7 OR MGSROO_ID = 16 OR MGSROO_ID = 8 OR MGSROO_ID = 11 OR MGSROO_ID = 14 OR MGSROO_ID = 1 OR MGSROO_ID = 2 OR MGSROO_ID = 4  
GROUP BY MGSROO_ID,3  
order by 3
 
 
No garantie  :ouch:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed