web-dev-qa-db-fra.com

Limiter la longueur du champ de texte long dans les résultats SELECT

J'exécute une requête SELECT sur une table dans MySQL en utilisant l'interface de ligne de commande (pas un client GUI):

SELECT * FROM blog_entry;

L'un des champs de blog_entry est de type 'texte long' et est un si long morceau de texte que lorsque le résultat est affiché dans mon terminal, l'affichage des lignes prend plus d'une ligne. Cela provoque un désordre laid d'un affichage, où les colonnes ne sont pas facilement visibles. Quelle technique puis-je utiliser dans ma requête SELECT qui limiterait le nombre de caractères affichés pour chaque champ afin que les résultats des lignes imprimées ne débordent pas vers de nouvelles lignes?

Veuillez me faire savoir si vous avez besoin d'éclaircissements - je serai réactif

26
maxm

Utilisez la fonction SUBSTRING de MySQL, comme décrit dans la documentation . Comme:

SELECT SUBSTRING(`text`, 1, 100) FROM blog_entry;

Pour sélectionner les 100 premiers caractères.

38
Oldskool

Vous pouvez utiliser la fonction LEFT() pour obtenir uniquement les premiers caractères:

SELECT LEFT(LongField, 20) AS LongField_First20chars
FROM ...
25
ypercubeᵀᴹ

La meilleure façon de nettoyer la lisibilité des résultats d'une requête dans votre fenêtre de terminal est d'utiliser le pager mysql, sans modifier votre requête car cela peut être trop lourd.

  1. Réglez le pager:

    mysql> pager less -S

  2. Faites votre requête:

    mysql> SELECT * FROM ...

Cela mettra vos résultats dans un format plus lisible. Vous pouvez utiliser vos touches fléchées pour parcourir les pages de haut en bas et de gauche et de droite pour voir le tableau complet. Appuyez simplement sur Q pour quitter le mode pager pour cette requête, puis exécutez simplement

mysql> pager more

pour revenir à la rivière de sortie normale si vous le souhaitez.

10
AgmLauncher
Select Cast(theLongTextField As VarChar(100)) From blogEntry
3
Bassam Mehanni