我试图使用一个选择语句从某个MySQL表中获得除一个以外的所有列。有什么简单的方法吗?

编辑:在这个表格中有53列(不是我的设计)


当前回答

我同意只选择*是不够的,如果你不需要,正如在其他地方提到的,是一个BLOB,你不希望有这个开销。

我会用所需的数据创建一个视图,然后您可以轻松地选择*——如果数据库软件支持它们的话。否则,将大量数据放到另一个表中。

其他回答

我想添加另一个观点来解决这个问题,特别是如果你有少量的列要删除。

您可以使用像MySQL Workbench这样的DB工具来为您生成选择语句,因此您只需手动删除生成语句的那些列,并将其复制到SQL脚本中。

在MySQL Workbench中,生成它的方法是:

右键单击表->发送到Sql编辑器->选择所有语句。

视图在这种情况下工作得更好吗?

CREATE VIEW vwTable
as  
SELECT  
    col1  
    , col2  
    , col3  
    , col..  
    , col53  
FROM table

只做

SELECT * FROM table WHERE whatever

然后用您最喜欢的编程语言php删除该列

while (($data = mysql_fetch_array($result, MYSQL_ASSOC)) !== FALSE) {
   unset($data["id"]);
   foreach ($data as $k => $v) { 
      echo"$v,";
   }      
}

我使用这个工作,尽管它可能是“离题”-使用mysql工作台和查询生成器-

打开列视图 Shift选择所有你想在你的查询列(在你的情况下,所有但这是我所做的) 右键单击并选择发送到SQL编辑器->名称短。 现在你有了列表,然后你可以复制粘贴查询到任何地方。

即使要查询所有列,也最好指定要查询的列。

因此,我建议您在语句中写下每一列的名称(不包括您不想要的列)。

SELECT
    col1
    , col2
    , col3
    , col..
    , col53

FROM table