Что состоит в том, чтобы отсортировать самый чистый путь, “описывают таблицу” результаты запроса?

Я продолжаю работать, "описывают таблицу" вывод для показа списка полей и их типов, я хочу, чтобы мои первичные ключи были наверху списка.. Я думаю, что нет никакого способа отсортировать результаты describe с помощью SQL (что-то как 'порядок') вместо того, чтобы сортировать его в PHP.

что Вы думаете парни?спасибо

11
задан Youssef 11 June 2010 в 12:40
поделиться

3 ответа

Вы правы. MySQL всегда будет выводить столбцы в их фактическом порядке - то есть в том порядке, в котором они физически хранятся в данных таблицы.

Вы можете физически перемещать столбцы внутри таблицы так, чтобы первичные ключи были первыми, но это потребует от MySQL блокировки таблицы и перезаписи всех ее данных в новом порядке. Это почти никогда не имеет смысла.

Если вы просто заинтересованы в красивом выводе, независимо от того, как на самом деле структурирована таблица, вы действительно можете отсортировать столбцы в PHP, возможно, используя простой вызов usort().

2
ответ дан 3 December 2019 в 07:36
поделиться

Не используйте описать, а используйте таблицы информации схемы, которые предоставляются большинством СУБД. Затем вы можете использовать простой выбор для получения информации.

-2
ответ дан 3 December 2019 в 07:36
поделиться

Когда вы делаете SHOW COLUMNS или DESCRIBE TABLE, вы на самом деле просто используете встроенную специальную базу данных под названием INFORMATION_SCHEMA для получения информации об именованной таблице. Забавно, что эта информация не возвращается в виде таблицы, поэтому невозможно заставить данные, возвращаемые этими функциями, действовать как таблица (для сортировки, подзапросов и т.д.).

К счастью, вы можете настроить свой собственный запрос для выполнения такого же поиска, как SHOW или DESCRIBE:

select COLUMN_NAME    as 'Field',
       COLUMN_TYPE    as 'Type',
       IS_NULLABLE    as 'Null',
       COLUMN_KEY     as 'Key',
       COLUMN_DEFAULT as 'Default',
       EXTRA          as 'Extra'
    from INFORMATION_SCHEMA.COLUMNS
        where TABLE_NAME   = 'my table' and
              TABLE_SCHEMA = 'my database'

    -- add ordering --
    order by Type;
16
ответ дан 3 December 2019 в 07:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: