我使用MySQL只获取那些使用*所需的列名。

19 浏览
0 Comments

我使用MySQL只获取那些使用*所需的列名。

这个问题已经在这里有了答案

可能是重复问题:

如何使用SELECT * [除了columnA] FROM tableA排除一个列?

我有一个表格,其中包含30个列,我只获取那些带星号的需要的列名。

我的问题是如何避免其他列名?

例如,如何在MySQL中实现所需的结果:

SELECT *, AVOID('col_13,col_14') FROM `table`

AVOID 不是 MySQL 的函数,我只是通过这个解释一下。

为什么我想要这个?因为我只需要20个列名称用于首页,而且我不想编写这样的查询,因为我想优化或缩短像 * 这样的方式。

SELECT col_1,col_2,....col_20 FROM `table`

这在MySQL中是可能的。

admin 更改状态以发布 2023年5月23日
0
0 Comments

尝试这个查询

SET @SQL = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), 'col_13,col_14,', '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table_name' ), ' FROM table_name');
PREPARE stmt1 FROM @SQL;
EXECUTE stmt1;

0
0 Comments

不可能的。您需要枚举所有所需的字段

0