Afficher x premiers caractères d'un enregistrement (mysql)

Bonjour, j’aurais aimer savoir comment faire pour afficher les x premiers caractères d’un enregistrement sous mysql .

Car je les affichent dans un tableau et leur contenu vient des utilisateur . Donc quelques fois leurs messages sont trop long et ça créé du désordre au niveau de l’organisation de la page .

J’ai cherché mais j’ai rien trouvé à ce sujet et de moi même je ne sait pas comment faire ça .

Ou alors, ça répondrait aussi à mon problème:
Sur ce forum, si je met un titre de sujet trop long ça va à la ligne automatiquement après x caractères . Style: enregistrement à plus de x caractères sur cette ligne: on va à la ligne .

utilise la fonction LEFT

ex : SELECT LEFT(‘Lorenzo’, 2);
retourne : 'Lo ’

sinon il y a aussi SUBSTRING mais LEFT est plus performant


sinon pour forcer le retour a la ligne c’est tout con, suffit d’insérer dans la chaine un
a X caractères du début avec INSERT … mais en HTML une chaine trop longue pour son conteneur est toujours mis a la ligne sur un espace.
Edité le 24/09/2010 à 21:03

Problème réglé !

$max_caracteres=30;
$valuescrip = substr($value["xxxx"], 0, $max_caracteres);
$valuescrip = $valuescrip."...";

c’est un script PHP alors que ta question parlait de MySQL :yeux2:

Ben c’est vrai que je pensait trouver une solution dans ma requete mysql, mais j’ai réussi ça alors je m’en contente :icon_biggrin:
Edité le 24/09/2010 à 21:29

Bah, utiliser une requete mysql spéciale (LEFT) pour faire ce que fait un substr n’est pas très malin… et substring est surement plus rapide puisqu’il ne sert qu’à cette utilisation…

Le débat LEFT/substr est je pense un peu plus complexe. Néanmoins, il est préférable je pense de privilégier le substr car il permet de remonter l’enregistrement complet de la base et permet d’y accéder sans refaire une requête à la base. Bref comme c’est une contrainte “métier”, il valait en effet mieux faire le traitement en php.