【问题标题】:MariaDB, Anyway to truncate * results?MariaDB,无论如何要截断 * 结果?
【发布时间】:2021-05-29 21:06:59
【问题描述】:

在从表中选择所有内容时,是否有任何技巧可以截断每列的输出?

SELECT * FROM table_name;

在概念上与此类似?

SELECT SUBSTR(*, 1, 10) FROM table_name;

【问题讨论】:

  • 听起来像是 XY 问题。为什么要这样做?
  • 连接列并截断它
  • 我认为每个人都错过了这个问题的意图,显然我知道如何用 substr() 列出所有列,因为我在我的问题中提到了它。我只是想知道是否有一个技巧,捷径,可以快速显示一个“快照”截断的表格,它可以干净地适合我的屏幕,而无需输入十几个列名或使用 \G。所以答案是“不,没有办法”。谢谢。

标签: mysql mariadb


【解决方案1】:

您需要为单个列执行此操作

SELECT SUBSTR(colname1, pos, len), SUBSTR(colname2, pos, len) FROM tablename;

【讨论】:

  • 您也可以将它们连接起来,然后将其子串化。
  • 按名称输入所有列不会全选 (SELECT *)。
【解决方案2】:

* 通配符只选择所有列,没有任何修改。它不支持使用内部表达式。

要按照您的描述进行操作,您必须按名称拼出所有列:

SELECT SUBSTR(CONCAT(col1, col2, col3, ...), 1, 10) FROM table_name;

【讨论】:

  • 确实如此。您没有描述您希望查询执行的操作。您应该展示一个假设的数据行示例,以及您希望查询的结果是什么。请在上面编辑您的问题以添加
  • 你是对的,我可以看到它的措辞方式可以这样解释。感谢您的意见。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 2017-09-30
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多