2014-10-27 40 views
0

如何从表中选择除主键以外的所有列?应该注意的是,我不知道这个表中的字段名称,操作应该能够自动运行。选择MySQL中主键除外的所有列

谢谢你的帮助。

+2

我能好奇的问结果你为什么会想选择一切,但主键? – AdamMc331 2014-10-27 05:44:19

+0

请显示您的表格定义。您可以使用'DESC '来获得定义。 – davidkonrad 2014-10-27 05:44:20

+1

可能重复http://stackoverflow.com/questions/9122/select-all-columns-except-one-in-mysql – AdamMc331 2014-10-27 05:47:44

回答

0

用途:

让所有列没有主要用途

SELECT `COLUMN_NAME` FROM `information_schema`.`COLUMNS` WHERE (`TABLE_SCHEMA` = 'wpresstest') AND (`TABLE_NAME` = 'wp_countries') AND (`COLUMN_KEY` <> 'PRI') 

见你不能做所有使用简单SQL.So

无论是使用mysql准备执行语句,或者使用PHP方式如下:

1)这将是您的第一个查询如上所述。您将获得所有列名称不包括primary.OK?

2)现在获取PHP的结果数组,然后为您刚刚获得的以逗号分隔的列名创建动态查询。

3)现在消灭第2个查询来获取ROWS。在这里您将包含​​3210。

并获得列名后,你可以解雇查询返回基于返回的列

+0

谢谢,但是这个错误返回:#1064 - 你的SQL语法有错误;请检查与您的MySQL服务器版本相对应的手册,以便在第1行的tbl1处使用来自'TABLE INDEXES FROM TABLE WHERE Key_name <>“PRIMARY”)的正确语法 – Behzad 2014-10-27 06:09:55

+0

@Behzad,更新回答,替换表格,DB名称由您自己的表 wp_countries,wpresstest – 2014-10-27 06:13:25

+0

非常感谢,但再次错误:(......我使用此SELECT(SELECT'COLUMN_NAME' from'information_schema'.'COLUMNS' WHERE('TABLE_SCHEMA' ='test')AND('TABLE_NAME '('='tbl1')AND('COLUMN_KEY' <>'PRI'))FROM tbl1 – Behzad 2014-10-27 06:20:57