首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL select for serial列

SQL select for serial列
EN

Stack Overflow用户
提问于 2017-12-12 22:46:10
回答 1查看 207关注 0票数 0

假设我有一个包含列的数据:

aa1、aa2、aa3、aa4、aa5、aa6

诸若此类。

我正在寻找一个select查询,在这个查询中,我可以只提到如下内容:

select aa[1 to n] from table...

有没有办法直接做呢?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-12-12 23:08:53

在MariaDB中,数据库information_schema中有一个系统设置,其中定义了所有模式、表、列等。

使用它,您可以列出有关该表的所有详细信息,并根据需要使用它来组成“动态”查询。

表定义示例:

代码语言:javascript
复制
CREATE TABLE `tablename` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `aa1` INT(11) NULL DEFAULT NULL,
    `aa2` INT(11) NULL DEFAULT NULL,
    `aa3` INT(11) NULL DEFAULT NULL,
    `aa4` INT(11) NULL DEFAULT NULL,
    `aa5` INT(11) NULL DEFAULT NULL,
    `aa6` INT(11) NULL DEFAULT NULL,
    `aa7` INT(11) NULL DEFAULT NULL,
    `aa8` INT(11) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_bin'
ENGINE=InnoDB
AUTO_INCREMENT=3
;

information_schema的查询以列出这些表:

代码语言:javascript
复制
SELECT GROUP_CONCAT(COLUMN_NAME) FROM information_schema.`COLUMNS` 
WHERE TABLE_SCHEMA = 'stackoverflow' 
AND TABLE_NAME = 'tablename' 
AND COLUMN_NAME LIKE 'aa%'

结果是:

代码语言:javascript
复制
aa1,aa2,aa3,aa4,aa5,aa6,aa7,aa8

因此,您可以根据需要构建查询。

编辑:

SQL documentation中有这样一句话:“不要使用INFORMATION_SCHEMA视图来确定对象的模式。查找对象模式的唯一可靠方法是查询sys.objects目录视图。”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47775351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档