MySQL / SQL récupérer les 40 premiers caractères d'un champ de texte?

Comment puis-je récupérer un champ de texte à partir de la table de base de données mysql, mais pas le texte entier, juste les quelques 40 caractères.

est-ce que cela peut être fait en sql ou est-ce que je dois le faire en utilisant php?

fondamentalement, ce que j'essaie de faire est d'afficher les premiers caractères x et puis laisser l'utilisateur cliquer sur ce pour voir le contenu complet.

35
demandé sur John 2010-01-17 14:54:35

5 réponses

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

voir la fonction LEFT() .

comme une rule of thumb , vous ne devriez jamais faire en PHP ce que MySQL peut faire pour vous. Pensez - y de cette façon: vous ne voulez pas transmettre quoi que ce soit de plus que strictement nécessaire de la DB aux applications requérantes.


éditer si vous allez utiliser l'ensemble des données sur la même page (c'est-à-dire sans demande intermédiaire) la plupart du temps, il n'y a pas de raison de ne pas pour aller chercher le texte complet en une seule fois. (Voir les commentaires et réponse de Veger .)

58
répondu jensgram 2017-05-23 11:46:48
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/en/string-functions.html#function_left

5
répondu Cocowalla 2014-08-06 07:50:31

essayez ceci...

sélectionner à gauche(nom du champ, 40) du nom de la table où la condition pour les 40 premiers et

sélectionner à droite (nom du champ, 40) du nom de la table où la condition pour les 40 derniers 151990920"

3
répondu jeswin 2013-06-04 11:52:08

vous pouvez le faire en SQL comme les autres l'ont déjà montré.

mais, si vous aussi veulent montrer le texte complet si l'utilisateur clique dessus, vous avez également besoin de texte complet et il semble un gaspillage de laisser la base de données vous envoyer le court et le texte complet. Ainsi, vous pouvez saisir le texte complet et écrire du code pour montrer le texte court et le texte complet 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 pourriez faire quelque chose de mieux lorsque vous cliquez dessus (au lieu de alert() ). Vous pouvez aussi faire une vérification PHP maintenant pour voir si l'original est plus court que 40 caractères et gérer des situations comme celle-ci.

1
répondu Veger 2010-01-17 12:12:17

vérifiez celui-ci aussi,

 mysql_query('SELECT LEFT('your text/fieldname', 40) FROM tablename');
0
répondu Mahendra Jella 2014-09-18 06:45:32