Begrenzen Sie die Länge des Longtext-Felds in SELECT-Ergebnissen

Ich führe eine SELECT-Abfrage für eine Tabelle in MySQL unter Verwendung der Befehlszeilenschnittstelle (kein GUI-Client) aus:

SELECT * FROM blog_entry;

Eines der Felder von blog_entry hat den Typ 'longtext' und ist so ein langer Text, dass die Anzeige von Zeilen mehr als eine Zeile erfordert, wenn das Ergebnis in meinem Terminal angezeigt wird. Dies führt zu einem hässlichen Durcheinander einer Anzeige, bei der Spalten nicht leicht zu sehen sind. Welche Technik kann ich in meiner SELECT-Abfrage verwenden, die die Anzahl der für jedes Feld angezeigten character begrenzt, sodass die Ergebnisse der gedruckten Zeilen nicht auf neue Zeilen überlaufen?

Bitte lassen Sie mich wissen, wenn Sie eine Klärung benötigen – ich werde reagieren

Solutions Collecting From Web of "Begrenzen Sie die Länge des Longtext-Felds in SELECT-Ergebnissen"

Verwenden Sie die MySQL-function SUBSTRING , wie in der Dokumentation beschrieben . Mögen:

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

Um die ersten 100 character auszuwählen.

Sie können die function LEFT() verwenden, um nur die ersten character zu erhalten:

 SELECT LEFT(LongField, 20) AS LongField_First20chars FROM ... 

Die beste Möglichkeit, die Lesbarkeit der Ergebnisse von einer Abfrage in Ihrem Terminalfenster zu bereinigen, besteht darin, den Pager von mysql zu verwenden, ohne Ihre Abfrage zu ändern, da dies zu mühsam sein kann.

  1. Stellen Sie den Pager ein:

    mysql> pager less -S

  2. Führen Sie Ihre Anfrage aus:

    mysql> SELECT * FROM ...

Dadurch werden Ihre Ergebnisse in einem besser lesbaren Format angezeigt. Mit den Pfeiltasten können Sie nach oben, unten und links und rechts blättern, um die vollständige Tabelle anzuzeigen. Drücken Sie einfach Q , um den Pager-Modus für diese Abfrage zu verlassen, und starten Sie dann einfach

 mysql> pager more 

um zum normalen Ausgangsfluss zurückzukehren, wenn du willst.

 Select Cast(theLongTextField As VarChar(100)) From blogEntry