elidris
Messages postés125Date d'inscriptionlundi 15 août 2005StatutMembreDernière intervention 9 octobre 2007
-
21 août 2007 à 02:32
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
23 août 2007 à 22:05
Bonjour, il y avait longtemps, ça va ? les vacances bien ?
J'aimerais faire une requète dans ma base SQL qui puisse me permettre de ne selectionner que les citations les plus courtes, par exemple celles ne dépassant pas 15 mots, je ne vois pas trop comment faire et en plus j'aimerais ne pas trop fatiguer le serveur !!! je me demandais si il fallait que j'ajoute un champs dans ma base indiquant à l'avance le nombre de mot et ensuite faire une recherche sur ce champs ou existe t'il une commande SQL pour effectuer cela ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 21 août 2007 à 08:12
Hello,
LENGTH() ou CHAR_LENTGH() pour compter les lettres, plutôt que les mots.
Si tu parles de mysql et pas d'un autre serveur de bdd.
Mais si tu peux stocker à l'avance le nombre de lettres (ou de mots, pour le coup), et indexer ce champ, tu gagneras en effet en rapidité et épargnera ton serveur de bdd (si tant est que l'on parle là d'une GROSSE base avec beaucoup de requêtes).
elidris
Messages postés125Date d'inscriptionlundi 15 août 2005StatutMembreDernière intervention 9 octobre 2007 21 août 2007 à 13:54
en fait actuellement ma base n'est pas énorme, je n'ai que environ 1400 lignes mais je n'ai pas de serveur dedié alors j'economise les requêtes ;)
Ce que je veux eviter, c'est de parcourir toutes les lignes pour n'en sortir que 10 ou 20,
qu'appelles-tu une grosse base ? 10000 lignes ?
sinon j'accepte ta réponse pour LENGTH() ou CHAR_LENTGH() sauf si tu me dit que 10000 lignes est une grosse base, à ce moment là, j'ajouterais un champs pendant que je n'ai que 1400 lignes....
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 21 août 2007 à 15:06
Non 10000 c'est pas gros. Mais après ça dépend aussi de la fréquence de sollicitation de ta base.
Mais j'opterais pour le stockage en amont du nombre de lettres dans un champ à part, SAUF si tes citations sont amenées à changer souvent. ce qui m'étonnerait bcp, à priori...une citation reste tjrs la même.
elidris
Messages postés125Date d'inscriptionlundi 15 août 2005StatutMembreDernière intervention 9 octobre 2007 23 août 2007 à 20:27
ok je suis en train de tester avec MAX_LENGTH mais malgré mes recherches je n'arrive pas à trouver la bonne formule :
<?php
$query="SELECT m.pseudo, m.avatar, p.proverbe, p.categorie, p.auteur, p.nb_commentaire,p.idproverbe FROM membre m, proverbe p WHERE p.categorie='$cat' AND p.idmembre = m.idmembre";
$result = mysql_query($query);
?>
de quelle façon puis-je ajouter max_length dans ma clause WHERE ? j'ai testé plusieurs configuration comme :
$query="SELECT m.pseudo, m.avatar, p.proverbe, p.categorie, p.auteur, p.nb_commentaire,p.idproverbe FROM membre m, proverbe p WHERE p.categorie='$cat' AND p.idmembre = m.idmembre AND MAX_LENGTH(p.proverbe)=<100 ORDER by idproverbe DESC LIMIT $Ndeb,$Nmax";
Evidemment ça ne marche pas et je ne trouve pas grand chose comme explication sur cette fonction et surtout la manière de l'utiliser !
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?