SQL Comment ordonner une requete multiple - SQL/NoSQL - Programmation
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é
Marsh Posté le 03-08-2006 à 23:37:01
ReplyMarsh Posté le 04-08-2006 à 12:33:08
ReplyMarsh 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
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. |
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
union powa dans ce cas
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 :
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