You*_*sef 11 php mysql describe
我正在研究"描述表"输出以显示字段列表及其类型,我希望我的主键位于列表的顶部..我认为没有办法使用SQL对描述结果进行排序(类似'命令'通过')而不是在PHP中排序.
你们觉得怎么样 ?谢谢
amp*_*ine 16
当你执行a SHOW COLUMNS
或a时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;
Run Code Online (Sandbox Code Playgroud)
OP除了:感谢您激励我再次查看如何做到这一点.我曾经知道怎么做但却忘记了.
你是对的。MySQL 将始终按照其实际顺序 \xe2\x80\x94\xc2\xa0 输出列,即它们在表数据中物理存储的顺序。
\n\n您可以在表中物理移动列,以便主键位于第一位,但这需要 MySQL 锁定表并按新顺序重写其整个数据。这几乎是不值得的。
\n\n如果您只是对呈现良好的输出感兴趣,无论表的实际结构如何,您确实可以在 PHP 中对列进行排序,也许使用一个简单的usort()
调用。
归档时间: |
|
查看次数: |
4276 次 |
最近记录: |