【发布时间】:2011-09-07 18:28:49
【问题描述】:
你好,
SELECT field1, field2, field3 FROM table WHERE 1 此查询将选择field1、field2、filed3
如何选择除field1以外的所有字段?当然,我们可以告诉选定的field2和field3,但我说的是当这样的字段很多时的情况。
谢谢。
【问题讨论】:
-
如果你的表有超过10个字段,那么它很可能需要规范化。
你好,
SELECT field1, field2, field3 FROM table WHERE 1 此查询将选择field1、field2、filed3
如何选择除field1以外的所有字段?当然,我们可以告诉选定的field2和field3,但我说的是当这样的字段很多时的情况。
谢谢。
【问题讨论】:
除了使用动态 SQL 之外,您不能在 SELECT 子句中定义动态列表。
【讨论】:
您需要使用 information_schema.columns 生成一个选择查询,其中包含您要忽略的列以外的所有列,然后执行动态生成的 sql。
【讨论】:
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;
【讨论】: