2010-09-26 7 views
7

MySQL:php + mysql, commande par nom + à partir id spécifique

id | name | 
------------ 
1 | Joe | 
2 | Craig | 
3 | Shawn | 
4 | Ryan | 
5 | Seth | 

PHP:

$a = mysql_query("SELECT * FROM table_name ORDER BY name DESC"); 

ce que je veux faire bien est, je veux commencer à id: 3, il devrait donc sortie:

3,4,5,1,2

+0

De quelle manière «commandez-vous par nom» comme dans votre titre? Il semble que vous voulez commander par ID. –

Répondre

6

EDIT: Mark est correcte. La requête précédente était syntaxiquement incorrecte. Utiliser des pseudonymes aliasés devrait fonctionner!

Select id from 
(
    SELECT id FROM table_name 
    WHERE id >= 3 
    ORDER BY id ASC 
) X 

UNION 

Select * from 
(
    SELECT id FROM table_name 
    WHERE id < 3 
    ORDER BY id ASC 
) Y 

Cela devrait vous donner 3,4,5,1,2

12

Vous pouvez utiliser une expression dans la ORDER BY:

SELECT id, name 
FROM table_name 
ORDER BY id < 3, id 

Résultat:

 
3 Shawn 
4 Ryan 
5 Seth 
1 Joe 
2 Craig 

Je vous conseille également de ne pas utiliser SELECT * et de lister les colonnes explicitement.

+2

+1 - C'est une façon beaucoup plus propre de réaliser la même chose !! :-) – InSane