Предельная длина поля длинного текста в результатах SELECT - PullRequest
26 голосов
/ 12 февраля 2012

Я выполняю запрос SELECT для таблицы в MySQL, используя интерфейс командной строки (не клиент GUI):

SELECT * FROM blog_entry;

Одно из полей blog_entry имеет тип 'longtext' и является настолько длинным фрагментом текста, что при отображении результата в моем терминале отображение строк занимает более одной строки. Это вызывает уродливый беспорядок отображения, где столбцы не легко видны. Какую технику можно использовать в моем запросе SELECT, чтобы ограничить количество символов, отображаемых для каждого поля, чтобы результаты напечатанных строк не переполнялись новыми строками?

Пожалуйста, дайте мне знать, если вам нужны разъяснения - я отвечу

Ответы [ 4 ]

36 голосов
/ 12 февраля 2012

Используйте функцию MySQL SUBSTRING, как описано в документации . Как:

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

Для выбора первых 100 символов.

25 голосов
/ 12 февраля 2012

Вы можете использовать функцию LEFT(), чтобы получить только первые символы:

SELECT LEFT(LongField, 20) AS LongField_First20chars
FROM ...
10 голосов
/ 15 января 2014

Лучший способ очистить читаемость результатов запроса в окне терминала - это использовать пейджер mysql, не модифицируя ваш запрос, поскольку это может быть слишком громоздким.

  1. Установить пейджер:

    mysql> pager less -S

  2. Ваш запрос:

    mysql> SELECT * FROM ...

Это поместит ваши результаты в более читаемый формат. Вы можете использовать клавиши со стрелками для перемещения вверх и вниз, влево и вправо, чтобы увидеть полную таблицу. Просто нажмите Q, чтобы выйти из режима пейджера для этого запроса, а затем просто выполните

mysql> pager more

чтобы вернуться к нормальной выходной реке, если хотите.

3 голосов
/ 12 февраля 2012
Select Cast(theLongTextField As VarChar(100)) From blogEntry
...