可能重复:
SQL exclude a column using 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中是可行的。
答案 0 :(得分:2)
不,这是不可能的。您需要枚举所有必填字段
答案 1 :(得分: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;