【问题标题】:How to SELECT (n-1) Columns without writing all column names in SELECT Query, SQL? [duplicate]如何选择(n-1)列而不在 SELECT Query、SQL 中写入所有列名? [复制]
【发布时间】:2014-05-09 07:07:26
【问题描述】:

SQL/MySql

我有一张桌子,那张桌子上有 25 列。 我需要从表格中选择 24 列。

我不想在选择查询中写下所有列名,例如:

SELECT column1, column2...column24 FROM table1;

有没有办法从选择查询中获取 (n-1),(n-2) 列?

n = 列数。

【问题讨论】:

  • 检查这个stackoverflow.com/questions/21554661/…它可能对你有帮助
  • 没有办法。你必须写下所有的列名(我敢肯定写这 24 列会比写这个问题要快)。您的 SQL 客户端不支持您只需选择这些列的自动完成功能吗?
  • 简而言之-不。您必须编写所有需要的列。
  • 目的是什么?如果您需要使用前 n 列 - 只需使用它们,不要处理其余的列
  • @a_horse_with_no_name 好奇心比盲目做事更重要。

标签: mysql sql


【解决方案1】:

您可以使用 information_schema,如下所示:

select GROUP_CONCAT(column_name) from information_schema.columns where table_schema = ? and table_name = ? and ordinal_position < ? order by ordinal_position

把它塞进一个程序中,你就可以开始了

【讨论】:

  • 我得到的一种方法是:1.) CREATE TEMPORARY TABLE table2 AS (SELECT * FROM table1); 2.) ALTER TABLE table2 DROP COLUMN 密码; 3.)从表2中选择*; 4.) 删除表表 2;我认为这是很好的方法。好的,谢谢
  • 哇,这是最愚蠢的做法(不是指答案)。我只是希望寻找相同东西的人不会偶然发现这个评论,我没有话可以强调这个解决方案有多糟糕。
猜你喜欢
  • 2020-04-12
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
相关资源
最近更新 更多