web-dev-qa-db-fra.com

MySQL/SQL récupère-t-il les 40 premiers caractères d'un champ de texte?

Comment puis-je récupérer un champ de texte depuis la table de la base de données mysql, mais pas le texte entier, mais seulement une quarantaine de caractères?.

Cela peut-il être fait en SQL ou dois-je le faire en utilisant php?

ce que j'essaie de faire est de montrer les x premiers caractères, puis de laisser l'utilisateur cliquer dessus pour voir le contenu complet.

36
John
SELECT LEFT(field, 40) AS excerpt FROM table(s) WHERE ...

Voir le LEFT() function.

Comme règle générale, vous ne devriez jamais faire en PHP ce que MySQL peut faire pour vous. Pensez-y de cette façon: vous ne voulez rien transmettre d’autre que strictement nécessaire de la base de données aux applications qui le demandent.


MODIFIER _ ​​Si vous allez utiliser les données complètes sur la même page (c'est-à-dire sans demande intermédiaire) plus souvent qu'autrement, il n'y a pas de raison que not pour récupérer le texte complet en une fois. (Voir les commentaires et la réponse de Veger .)

59
jensgram
SELECT LEFT(MY_COLUMN, 40) FROM MY_TABLE

Fonction dans le manuel de référence MySQL:

http://dev.mysql.com/doc/refman/5.0/fr/string-functions.html#function_left

5
Cocowalla

essaye ça... 
SELECT LEFT (nom du champ, 40) FROM nom de la table WHERE condition pour les 40 premiers et 
SELECT RIGHT (nom du champ, 40) FROM nom de la table WHERE condition for last 40

3
jeswin

Vous pouvez le faire en SQL comme les autres déjà montrés.

Mais, si vous aussi voulez afficher le texte intégral si l'utilisateur clique dessus, vous devez également consulter le texte intégral. Il semble inutile de laisser la base de données vous envoyer le texte court et le texte intégral. Vous pouvez donc saisir le texte intégral et écrire du code pour afficher le texte court et le texte intégral lorsque l'utilisateur clique dessus.

$result = mysql_query('SELECT text FROM table');
$row = mysql_fetch_row($result);
echo '<div onclick="alert(\''.$row[0].'\');">'.substr($row[0], 0, 40).'</div>';

Bien sûr, vous pouvez faire quelque chose de plus agréable lorsque vous cliquez dessus (au lieu de alert()). Vous pouvez aussi vérifier PHP maintenant si l'original est inférieur à 40 caractères et gérer des situations comme celle-ci.

1
Veger

Vérifiez celui-ci aussi,

 mysql_query('SELECT LEFT('your text/fieldname', 40) FROM tablename');
0
Mahendra Jella