okaneganai
Messages postés47Date d'inscriptionmercredi 10 novembre 2004StatutMembreDernière intervention23 mai 2006
-
6 août 2005 à 13:29
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
6 août 2005 à 19:34
Bonjour à tous.
Voilà j'ai une petite question. J'ai la requête suivante:
$query_tout= "SELECT id,fr,jp,romaji,kana FROM vocabulaire WHERE ";
$query_tout.="msearch='".$mot_noAccent."' ";//FR exact
$query_tout.="OR jp='".$mot."' ";//JP exact
$query_tout.="OR romaji='".$mot_romaji."' ";//ROMAJI exact
$query_tout.="OR kana='".$mot."' ";//KANA exact
//--//
$query_tout.="OR msearch LIKE'".$mot_noAccent." %' ";//FR en première position
//--//
$query_tout.="GROUP BY id ORDER BY LENGTH(fr) ASC LIMIT 3000 ";
Et je voudrait pouvoir ordonner mes résultats de la manière suivante:
afficher d'abord les résultats pour msearch='".$mot_noAccent."' ,
puis ceux pour jp ='".$mot."' , ensuite ceux pour
romaji='".$mot_romaji."' etc...
est-ce possible de faire ça en une seule requête?
J'ai essayé en faisant des jointures, mais je ne suis pas sur de ma syntaxe ni du résultat:
okaneganai
Messages postés47Date d'inscriptionmercredi 10 novembre 2004StatutMembreDernière intervention23 mai 2006 6 août 2005 à 14:12
Je me réexplique.
Voici ma requête de base:
SELECT id, fr, jp, romaji, kana
FROM vocabulaire
WHERE
fr = 'chat'
OR jp = 'chat'
OR romaji = 'chat'
OR kana = 'chat'
GROUP BY id
ORDER BY LENGTH( fr ) ASC
LIMIT 3000
Dans un premier temps, je veux rechercher un mot dans tout ces champs,
mais il faut absolument ordonner les résultats de façon à ce
qu'apparraissent d'abord les mots trouvés dans FR, puis ceux trouvés
dans JP, puis ceux trouvés dans KANA, puis ceux trouvés dans ROMAJI.