【问题标题】:I get only those columns name who they are required me with * using MySQL [duplicate]我只得到那些需要我使用 MySQL 的列名 [重复]
【发布时间】:2012-05-22 16:30:17
【问题描述】:

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

【问题讨论】:

  • 如果重复链接自动添加到您的帖子中,请不要编辑它们 - 这就是几年前该问题被关闭的原因。如果您不认为该问题是重复的,请重新投票,或在 Meta 上发帖。

标签: mysql database optimization


【解决方案1】:

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

【讨论】:

  • 这也恰好执行得更快......
【解决方案2】:

试试这个查询

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多