我只使用MySQL获得了他们需要我的那些列名

时间:2012-05-15 07:25:53

标签: mysql database optimization

  

可能重复:
  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中是可行的。

2 个答案:

答案 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;