Ограничить длину поля longtext в результатах SELECT

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

SELECT * FROM blog_entry;

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

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

Ответы

Ответ 1

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

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

Чтобы выбрать первые 100 символов.

Ответ 2

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

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

Ответ 3

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

  • Установите пейджер:

    mysql> pager less -S

  • Сделайте запрос:

    mysql> SELECT * FROM ...

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

mysql> pager more

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

Ответ 4

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