【问题标题】:Select all fields other than those listed? [duplicate]选择列出的字段以外的所有字段? [复制]
【发布时间】:2011-09-07 18:28:49
【问题描述】:

可能重复:
Select all columns except one in MySQL?

你好,

SELECT field1, field2, field3 FROM table WHERE 1 此查询将选择field1field2filed3

如何选择除field1以外的所有字段?当然,我们可以告诉选定的field2和field3,但我说的是当这样的字段很多时的情况。

谢谢。

【问题讨论】:

  • 如果你的表有超过10个字段,那么它很可能需要规范化。

标签: mysql sql


【解决方案1】:

除了使用动态 SQL 之外,您不能在 SELECT 子句中定义动态列表。

【讨论】:

    【解决方案2】:

    您需要使用 information_schema.columns 生成一个选择查询,其中包含您要忽略的列以外的所有列,然后执行动态生成的 sql。

    【讨论】:

      【解决方案3】:
      set @qry = (select concat('select ',group_concat(column_name), ' from ' ,table_name) from
      information_schema.columns
      where table_schema = database()
      and table_name = 'your_table'
      and column_name <> 'field_you_want_to_exclude');
      
      prepare stmt from @qry;
      execute stmt;
      deallocate prepare stmt;
      

      【讨论】:

        猜你喜欢
        • 2012-12-24
        • 1970-01-01
        • 2019-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-20
        • 2012-08-10
        相关资源
        最近更新 更多