phpmyadmin - Как сделать ширину столбца (отображаемую) уже заголовка столбца? - PullRequest
0 голосов
/ 22 февраля 2019

Использование phpmyadmin для управления базой данных MySQL.

При проектировании нашей базы данных мы создали описательные имена столбцов.Как правило, они довольно длинные, даже если содержимое столбцов довольно узкое.

Есть ли способ указать phpmyadmin отображать столбцы с шириной, основанной на содержимом столбцов, игнорируя заголовки столбцов?

Я хотел бы разместить больше полезных данных на моем мониторе, не нужно слишком много прокручивать вбок.

Для данной таблицы я знаю, как писать собственные запросы, использующие более короткие имена врезультат, но это утомительно: SELECT long_name ln, another_column ac, ...

Наилучшим ответом был бы вариант в phpmyadmin.

Я бы принял ответ с запросом mysql, который использует метаданные таблицы, чтобы просто сократитьвсе имена столбцов (в результате, не изменяя таблицу), если это можно сделать без необходимости вручную указывать все имена столбцов.Это нормально, если некоторые столбцы заканчиваются дублирующимися отображаемыми именами - если phpmyadmin все еще может отображать результат.

Неприемлемым (для моей цели) будет ответ, который полностью скрывает заголовки, или заменяет их именами, которые не являютсяполученное из имен столбцов - например, 1, 2, 3 или a, b, c произвольно - было бы неочевидно, какой столбец был каким при просмотре вывода.

1 Ответ

0 голосов
/ 23 февраля 2019

Частичное решение, которое было достаточно для моих целей.

Шаг 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: Вручную отредактируйте полученный результат сверху, в поле SQL-запроса phpmyadmin.
ИЛИ в '...' ниже, чтобы построить подготовленный оператор:

SET @query = '...';
PREPARE stmt FROM CONCAT(@query, ' LIMIT ?');
SET @limit = '50';
EXECUTE stmt USING @limit;
DEALLOCATE PREPARE stmt;

Обратите внимание, что без ограничения ВСЕ строки отправляются EXECUTE в phpmyadmin для отображения, что, скорее всего, приведет к тайм-ауту и ​​/ илипревышать некоторый предел.Так что для запроса SELECT включите ограничение.


(Полное решение создаст короткие псевдонимы для длинных имен столбцов, введенных в GROUP_CONCAT. Я не потратил время, чтобы выяснить этот шаг; я просто вручную обрезал некоторые из них, добавив их в псевдонимы; столбцыМне было все равно, что я удалил или перешел в конец.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...