2017-04-25 4 views
0

Les sql en cours d'exécution exécuter d'abord par reg_time, puis exécuter la limite, mais je veux d'abord exécuter la limite et après l'ordre par. Qui peut me dire quoi faire.Comment exécuter d'abord la limite puis exécuter l'ordre en utilisant mysql?

select * from user where province = 'hai' order by reg_time limit 0,20; 
+0

Avez-vous envisagé un sous-requête? – jarlh

+0

j'envisage – wanghao

+1

Puis-je vous demander pourquoi vous voulez faire comme ça? Normalement, il les ordonne au moment et récupère les 20 premiers, comme vous le voulez, il va choisir une sélection aléatoire et les retourner dans l'ordre chronologique. –

Répondre

1

exigence étrange, si vous voulez vraiment vraiment, vous pouvez sous-requête:

select * 
from (select * from user where province = 'hai' limit 0,20) t 
order by reg_time 
+0

merci pour votre réponse – wanghao

+0

Mais qui obtiendrez-vous 20? Ce ne sera pas le plus tôt 20. –