0

可能重复:
SQL 使用 SELECT * [except 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 中是可能的。

4

2 回答 2

2

不,这是不可能的。您需要枚举所有必填字段

于 2012-05-15T07:27:13.983 回答
0

试试这个查询

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;
于 2012-05-15T09:30:44.777 回答