Page 1 sur 1

ORDER BY FIELD ne marche pas correctement

Posté : 29 juil. 2008, 15:20
par worm1
Chose promise chose due, j'ouvre un nouveau sujet pour mon problème avec FIELD :)


Voilà le bout de ma requete sql pour ordonner les resultats !

Code : Tout sélectionner

...ORDER BY FIELD(NOM,'voiture noire jolie','voiture noire','voiture')ASC";
Avec cette requete j'obtiens les resultats suivants:

Code : Tout sélectionner

voiture bleu voiture rouge voiture noire jolie voiture noire voiture

mais je voudrais :

Code : Tout sélectionner

voiture noire jolie voiture noire voiture voiture bleu voiture rouge
Pourquoi "voiture bleu" et "voiture rouge" sont avant "voiture noire jolie"?

Merci

Posté : 29 juil. 2008, 15:29
par _activmik
Apparemment il te trie d'abord les fields de NOM puis ce que tu lui donnes :'voiture noire jolie' etc...
Quelle est ta logique de tri, peut-être que ta requête n'est pas adaptée ?!

Posté : 29 juil. 2008, 15:58
par worm1
je voudrais faire une recherche par ordre de pertinence, par exemple si tu cherches "voiture noire jolie" ,afficher au début les résultats avec "voiture noire jolie" l'un a coté de l'autre et ensuite les produit qui on "voiture noire" et ensuite "voiture avec n importe quoi derriere" ou "noire avec n importe quoi derriere" ou "jolie "avec n importe quoi derriere". c plus clair ?

Posté : 29 juil. 2008, 16:08
par _activmik
Et si tu fais un

Code : Tout sélectionner

ORDER BY %.$variable.%
?

Posté : 29 juil. 2008, 16:23
par AB
J'ai un petit doute sur ta méthode. Si tu veux faire des recherches avec des ordres de pertinence, fulltext, match et compagnie ne serait-il pas mieux adapté ?

Posté : 29 juil. 2008, 16:26
par Victor BRITO
J'ai un petit doute sur ta méthode. Si tu veux faire des recherches avec des ordres de pertinence, fulltext, match et compagnie ne serait-il pas mieux adapté ?
Avec une recherche dans le manuel de MySQL, c'est encore mieux : http://dev.mysql.com/doc/refman/5.0/fr/ ... earch.html. ;)

Posté : 29 juil. 2008, 17:43
par worm1
Merci, je vais regarder ça :wink:

J'ai essayé avec

Code : Tout sélectionner

ORDER BY %.$variable.%
Le résultat est le même que si je n'utiisais pas ORDER BY ...

ca me retourne

Code : Tout sélectionner

voiture voiture noire voiture noire jolie voiture bleu voiture rouge
pour le fulltext ma base n'est pas adapté pour l 'utiliser...

Bon bah finalement en triturant la fonction ORDER BY FIELD ,j'ai trouvé quelque chose qui me plait :)

Merci pour votre aide.