栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL按主键排序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL按主键排序

MySQL通常按插入顺序来提取数据,而插入顺序是按主键进行的,但是从技术上讲,如果您拔出主键列名并按以下顺序进行排序,则您可以做同样的事情

SELECt whatever FROM tableORDER BY(   SELECt `COLUMN_NAME`    FROM `information_schema`.`COLUMNS`    WHERe (`TABLE_SCHEMA` = 'dbName')      AND (`TABLE_NAME` = 'tableName')      AND (`COLUMN_KEY` = 'PRI'));

对于复合键,您可以使用此

SELECt whatever FROM tableORDER BY(   SELECt GROUP_CONCAt(`COLUMN_NAME` SEPARATOR ', ')    FROM `information_schema`.`COLUMNS`    WHERe (`TABLE_SCHEMA` = 'dbName')      AND (`TABLE_NAME` = 'tableName')      AND (`COLUMN_KEY` = 'PRI'));

来自 DOCS的
信息架构访问权限 ****

每个MySQL用户都有权访问这些表,但是只能看到表中与用户具有适当访问权限的对象相对应的行。在某些情况下(例如,INFORMATION_SCHEMA.ROUTINES表中的ROUTINE_DEFINITION列),特权不足的用户将看到NULL。这些限制不适用于InnoDB表。您只能以PROCESS权限查看它们。

相同的特权适用于从INFORMATION_SCHEMA中选择信息并通过SHOW语句查看相同的信息。无论哪种情况,您都必须对某个对象具有某种特权才能查看有关该对象的信息。

设置:

CREATE TABLE some_stuff (    firstID INT,    secondID INT,    username varchar(55),    PRIMARY KEY (firstID, secondID)) ;

询问:

SELECt GROUP_CONCAt(`COLUMN_NAME` SEPARATOR ', ')FROM `information_schema`.`COLUMNS`WHERe (`TABLE_SCHEMA` = 'dbName')  AND (`TABLE_NAME` = 'some_stuff')  AND (`COLUMN_KEY` = 'PRI');

输出:

+--------------------------------------------+| GROUP_CONCAt(`COLUMN_NAME` SEPARATOR ', ') |+--------------------------------------------+|   firstID, secondID  |+--------------------------------------------+


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/670186.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号