限制SELECT结果中longtext字段的长度

max*_*axm 26 mysql sql longtext

我正在使用命令行界面(不是GUI客户端)在MySQL中的表上执行SELECT查询:

SELECT*FROM blog_entry;

blog_entry的一个字段是'longtext'类型,是一段很长的文本,当结果显示在我的终端中时,行的显示需要多行.这导致显示器的丑陋混乱,其中列不容易看到.我可以在SELECT查询中使用哪种技术来限制每个字段显示的字符数,以便打印的行结果不会溢出到新行?

如果您需要澄清,请告诉我 - 我会做出回应

Old*_*ool 39

使用MySQL的SUBSTRING功能,如文档中所述.喜欢:

SELECT SUBSTRING(`text`, 1, 100) FROM blog_entry;
Run Code Online (Sandbox Code Playgroud)

选择前100个字符.

  • 我发现如果'text'是字段名称,则不需要在'text'周围使用单个引号 (3认同)

ype*_*eᵀᴹ 25

您可以使用该LEFT()函数仅获取第一个字符:

SELECT LEFT(LongField, 20) AS LongField_First20chars
FROM ...
Run Code Online (Sandbox Code Playgroud)

  • @ValentinHeinitz?问题是关于MySQL,而不是SQLite.SQLite有`substr()`函数,你可以像在Oldskool的答案中那样使用它. (5认同)
  • @poolie 你当然没有。但在返回的列中使用别名是一种很好的做法。 (2认同)

Agm*_*her 11

在终端窗口中清除查询结果的可读性的最佳方法是使用mysql寻呼机,而不是修改您的查询,因为这可能太麻烦.

  1. 设置寻呼机:

    mysql> pager less -S

  2. 请问您的问题:

    mysql> SELECT * FROM ...

这将使您的结果以更易读的格式显示.您可以使用箭头键向上和向下翻页以及向左和向右翻页以查看完整表格.只需按下Q以退出该查询的寻呼机模式,然后运行即可

mysql> pager more
Run Code Online (Sandbox Code Playgroud)

如果你愿意,回到正常输出河流.


Bas*_*nni 5

Select Cast(theLongTextField As VarChar(100)) From blogEntry
Run Code Online (Sandbox Code Playgroud)