使用phpmyadmin管理MySQL数据库。
在设计数据库时,我们使用了描述性的列名。即使列内容很窄,它们也往往很长。
有没有一种方法告诉phpmyadmin显示列,其宽度基于列的内容,忽略列标题?
我想在显示器上放置更多有用的数据,而不必横向滚动太多。
对于给定的表,我知道如何编写在结果中使用短名称的自定义查询,但这很麻烦:SELECT long_name ln, another_column ac, ..
。
最佳答案将是phpmyadmin中的某些选项。
我可以接受一个mysql查询的答案,该查询使用表的元数据来简单地缩短所有列名(结果是不更改表),如果可以这样做,而不必手动提及所有列名。如果某些列的末尾显示名称重复也可以-如果phpmyadmin仍然可以显示结果。
(出于我的目的)不可接受的答案是完全隐藏标题,或将其替换为不是从列名称派生的名称-例如1、2、3或a,b,c任意-在查看输出时将不清楚哪一列。
答案 0 :(得分:0)
部分解决方案对我来说已经足够了。
步骤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查询框中。
或在下面的“ ...”中生成准备好的语句:
SET @query = '...';
PREPARE stmt FROM CONCAT(@query, ' LIMIT ?');
SET @limit = '50';
EXECUTE stmt USING @limit;
DEALLOCATE PREPARE stmt;
请注意,没有限制,EXECUTE
将所有行发送到phpmyadmin进行显示,这很可能会超时和/或超过某些限制。因此,对于SELECT查询,请包含一个限制。
(完整的解决方案将为输入到GROUP_CONCAT
中的长列名创建短别名。我没有花时间来找出该步骤;我只是通过对它们进行别名来手动将其截断;而我没有关心我删除还是移到最后。)