2010-12-08 19 views
0

Je recherche une valeur dans ma base de données MySQL et je veux trier les résultats par les éléments les plus proches.Comment interroger la base de données pour une entre-valeur et trier par le plus proche?

Exemple:

je recherche une valeur de 150, dans ma requête que je fais maintenant ce qui suit:

SELECT * FROM table WHERE field BETWEEN 100 AND 200
Les 100 et 200 sont calculés avant par une addition facile et soustractions. Mais maintenant mes résultats sont foirés, car il me donne les résultats comme s'ils avaient été sauvegardés dans la base de données.

Est-il possible de trier les résultats dans MySQL ou dois-je les trier par la suite avec PHP?

+0

add 'ordre par clause pour les résultats de tri. –

Répondre

0
SELECT * 
FROM table 
WHERE field BETWEEN 100 AND 200 
ORDER BY field 

ou avez-vous voulez quelque chose comme

SELECT * 
FROM table 
WHERE field BETWEEN 100 AND 200 
ORDER BY ABS(150-field) 

?

Quoi qu'il en soit, il existe interactive des didacticiels en ligne SQL qui devraient vous aider à démarrer rapidement vos compétences SQL.

+0

pas cool ... copie chat :-P :-) ;-) –

+0

bien, tapé plus de caractères et a dû saisir un lien, alors oui - vous étiez plus rapide! : P :) – Unreason

+0

Depuis que vous avez tapé ceci il y a 34 minutes, et Peter 33 minutes, vous étiez plus rapide. C'est aussi pourquoi je vais accepter votre réponse. Merci beaucoup! – Tim

1

vous devriez être en mesure d'ajouter une commande par article comme ceci:

ORDER BY ABS(150-field) 
+0

en supposant 150 est la valeur que vous voulez que vos résultats soient les plus proches de –