SQL Comment ordonner une requete multiple

SQL Comment ordonner une requete multiple - SQL/NoSQL - Programmation

Marsh Posté le 03-08-2006 à 22:01:36    

Bonjour. j'ai une requete que je voudrais afficher par ordre d'importance
j'explique : je fais une recherche de 2 à 5 items sur :  
un titre
une description
des mots clés
 
ma requete ressemble a ca :

Citation :

WHERE  
(`match` LIKE '%$demande1%' AND `match` LIKE '%$demande2%')
OR
(`description` LIKE '%$demande1%' AND `description` LIKE '%$demande2%')
OR
(`match` LIKE '%$demande1%' AND `description` LIKE '%$demande2%')
OR
(`description` LIKE '%$demande1%' AND `match` LIKE '%$demande2%')


et en fait la premiere requete est la plus importante, je voudrais que ses resultats apparaissent en premier, puis ensuite les resultats de la deuxieme, la troisieme etc...
 
Comment dois-je faire ?
 
Merci... ps un petit exemple serait sympa.


---------------
http://www.ypikay.com
Reply

Marsh Posté le 03-08-2006 à 22:01:36   

Reply

Marsh Posté le 03-08-2006 à 23:26:08    

si c'est ton moteur de recherche expérimental, c'est une horreur ultime niveau perfs, désolé :D

Reply

Marsh Posté le 03-08-2006 à 23:37:01    

ben j'essaye d'accelerer


---------------
http://www.ypikay.com
Reply

Marsh Posté le 04-08-2006 à 00:10:46    

commence par abandonner les OR et les LIKE :p

Reply

Marsh Posté le 04-08-2006 à 12:33:08    

m'enfin ? quoi utiliser à la place ?


---------------
http://www.ypikay.com
Reply

Marsh Posté le 04-08-2006 à 16:39:03    

encore, les or c'est pas trop pire, il va les évaluer jusqu'à ce qu'un retourne quelquechose, pas les autres.
 
sinon, si c'est pour faire des recherches sur du texte, t'as les fonction d'indexation sur texte intégral (fonctions "match", "freetext", etc.)
 
selon les SGBD, tu auras en plus un champ "rate" utilisable qui va retourner un indice de pertinance, ce qui va retourner exactement ce que tu veux

Reply

Marsh Posté le 05-08-2006 à 10:40:54    

Arjuna a écrit :

encore, les or c'est pas trop pire, il va les évaluer jusqu'à ce qu'un retourne quelquechose, pas les autres.
 
sinon, si c'est pour faire des recherches sur du texte, t'as les fonction d'indexation sur texte intégral (fonctions "match", "freetext", etc.)
 
selon les SGBD, tu auras en plus un champ "rate" utilisable qui va retourner un indice de pertinance, ce qui va retourner exactement ce que tu veux


si les OR avec MySQL c'est le mal (sauf à partir de mysql 5 je crois), parce qu'il n'est capable de n'utiliser un index que pour un seul des or :D
union powa dans ce cas :o


Message édité par joce le 05-08-2006 à 10:41:26
Reply

Sujets relatifs:

Leave a Replay

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