当我查看新数据库以探索其中的内容时,通常我会得到包含长列名但内容短的表,例如:
mysql> select * from Seat limit 2;
+---------+---------------------+---------------+------------------+--------------+---------------+--------------+-------------+--------------+-------------+---------+---------+----------+------------+---------------+------------------+-----------+-------------+---------------+-----------------+---------------------+-------------------+-----------------+
| seat_id | seat_created | seat_event_id | seat_category_id | seat_user_id | seat_order_id | seat_item_id | seat_row_nr | seat_zone_id | seat_pmp_id | seat_nr | seat_ts | seat_sid | seat_price | seat_discount | seat_discount_id | seat_code | seat_status | seat_sales_id | seat_checked_by | seat_checked_date | seat_old_order_id | seat_old_status |
+---------+---------------------+---------------+------------------+--------------+---------------+--------------+-------------+--------------+-------------+---------+---------+----------+------------+---------------+------------------+-----------+-------------+---------------+-----------------+---------------------+-------------------+-----------------+
| 4897 | 2016-09-01 00:05:54 | 330 | 331 | NULL | NULL | NULL | 0 | NULL | NULL | 0 | NULL | NULL | NULL | 0.00 | NULL | NULL | free | NULL | NULL | 0000-00-00 00:00:00 | NULL | NULL |
| 4898 | 2016-09-01 00:05:54 | 330 | 331 | NULL | NULL | NULL | 0 | NULL | NULL | 0 | NULL | NULL | NULL | 0.00 | NULL | NULL | free | NULL | NULL | 0000-00-00 00:00:00 | NULL | NULL |
+---------+---------------------+---------------+------------------+--------------+---------------+--------------+-------------+--------------+-------------+---------+---------+----------+------------+---------------+------------------+-----------+-------------+---------------+-----------------+---------------------+-------------------+-----------------+
由于标题的长度比每行的内容长,我看到一个难以标准化的无格式输出,特别是当你搜索一些没有被使用的字段等的线索时。
有没有办法告诉mysql客户端自动截断列名,例如最多10个字符?前10个字符通常足以知道它们所指的列。
当然,我可以使用AS
来维护列别名,但是如果列数太多并且您想进行快速探索,则每个表需要太长时间。
其他解决方案是告诉mysql删除每列的前缀seat_
(当然,对于我需要更改使用的前缀的每一列)。
答案 0 :(得分:1)
我认为没有办法自动完成。一些选项是:
1)使用PhpMyAdmin等图形用户界面查看表格内容。这些通常允许您调整列宽。
2)使用\G
代替;
结束查询:
mysql> SELECT * FROM seat LIMIT 2\G
这将水平而不是垂直显示列:
seat_id: 4897
seat_created: 2016-09-01 00:05:54
seat_event_id: 330
...
我经常将后者用于包含大量列的表格,因为读取横向格式可能很困难,尤其是当它在终端上环绕时。
3)在不包裹线条的模式下使用less
寻呼机。然后,您可以使用箭头键向左和向右滚动。
mysql> pager less -S
答案 1 :(得分:1)
我意识到你已经接受了答案,但这里还有其他一些选择:
您可以通过使用-N
或--skip-column-names
选项运行MySQL客户端来完全跳过列名。然后,列的宽度将由最宽的数据确定,而不是列名称。但是列名称会有 no 行。
您也可以使用列别名来设置自己的列名,但您必须自己手动输入这些名称。
答案 2 :(得分:0)
我没有足够的代表只是评论,所以我会把它扔到这里。这是你在找什么
How can I suppress column header output for a single SQL statement?