使用 phpmyadmin 管理 MySQL 数据库。
在设计数据库时,我们创建了描述性的列名称。即使列内容非常窄,这些内容也往往相当长。
有没有办法告诉 phpmyadmin 显示列,其宽度基于列内容,忽略列标题?
我想在显示器上显示更多有用的数据,而不必横向滚动太多。
对于给定的表,我知道如何编写在结果中使用较短名称的自定义查询,但这很乏味:SELECT long_name ln, another_column ac, ..
。
最佳答案是 phpmyadmin 中的某个选项。
我会接受一个mysql查询的答案,该查询使用表的元数据来简单地缩短所有列名称(在结果中,不更改表),如果可以做到这一点而无需手动提及所有列名称。如果某些列最终出现重复的显示名称也没关系 - 如果 phpmyadmin 仍然可以显示结果。
Not Acceptable (出于我的目的)是完全隐藏标题的答案,或者用不是从列名称派生的名称替换它们的答案 - 例如任意 1、2、3 或 a、b、c - 在查看输出时,哪一列是哪一列是不明显的。
最佳答案
部分解决方案足以满足我的目的。
第 1 步:
-- USE mydatabase;
SET @columnList = (SELECT GROUP_CONCAT(COLUMN_NAME) FROM information_schema.COLUMNS WHERE TABLE_NAME='mytable');
SET @query = CONCAT('SELECT ', @columnList, ' FROM mytable');
SELECT @query;
第2步:将上面的结果手动编辑到phpmyadmin的SQL查询框中。
OR 到下面的“...”中以构建准备好的语句:
SET @query = '...';
PREPARE stmt FROM CONCAT(@query, ' LIMIT ?');
SET @limit = '50';
EXECUTE stmt USING @limit;
DEALLOCATE PREPARE stmt;
请注意,如果没有限制,所有行都会由 EXECUTE
发送到 phpmyadmin 进行显示,这可能会超时和/或超出某些限制。因此,对于 SELECT 查询,请包含一个限制。
(一个完整的解决方案将为输入到GROUP_CONCAT
中的长列名创建短别名。我没有花时间弄清楚这一步;我只是通过别名手动截断了一些;我的列不在乎我删除或移到最后。)
关于mysql - phpmyadmin - 如何使(显示的)列宽比列标题窄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54817982/