Mysql SELECT - 如何选择列作为“UNSELECTED”列?

时间:2014-01-17 04:09:52

标签: mysql

我有2个包含许多列的表。我的桌子的例子:

table1
_______________________________________________
| a | b | c | d | e | f | g | h | i | ... | z |
-----------------------------------------------
table2
_______________________________________________
| a | b | c | d | e | f | g | h | i | ... | z |
-----------------------------------------------

现在,我想将table1中的记录复制或插入到表2.这是我的查询:

INSERT INTO table2 
SELECT table1.* FROM table1
WHERE table1.b = '1'

我在查询中找不到任何错误,但我想要的只是从表1中的列'a'到table2 之外的所有列插入记录。

我可以通过这个查询来做到这一点:

INSERT INTO table2 (b,c,d,...)  // it takes a long line
SELECT table1.b,table1.c,table1.d,... FROM table1 // it takes a long line
WHERE table1.b = '1'

但这不是一个有效的查询行,因为我只是不选择1列 有没有有效的方法?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用create like语句复制表,然后更改它以删除您不想要的列,并使用该新表执行insert插入。然后放下那张新桌子。 (或使用临时表)

CREATE TABLE table3 LIKE table1

ALTER TABLE table3 DROP COLUMN x

INSERT INTO table2
SELECT * FROM table3

DROP TABLE table3

等等。