我有一个包含 158 列和 22,000 行的表,还有另一个空表,我希望根据来自用户的 WHERE 条件动态插入值。 SELECT 查询将如下所示:
SELECT * FROM mygrist_tables WHERE suic_att>=5 AND 性别='M'
这给了我大约 9,000 条记录(比如说)。我想将这些记录插入到另一个表中(只是这个过滤后的数据)。是否可以?谁能告诉我 INSERT 查询是什么样子,以及我是否需要创建另一个包含所有这 158 个列的表,或者 INSERT 查询是否可以动态创建所有这 158 个列?另外,我可以使用视图来做到这一点还是表格是必需的?提前致谢!
听起来你想运行上面的SELECT
声明和INSERT
将结果放入不存在的新表中。如果是这样,这应该有效:
SELECT * INTO YourNewTable
FROM mygrist_tables
WHERE suic_att>=5 AND gender='M'
假设 YourNewTable 已经存在,那么您需要运行 INSERT INTO:
INSERT INTO YourNewTable
SELECT *
FROM mygrist_tables
WHERE suic_att>=5 AND gender='M'
(可选)您可能需要指定它们中的列不相同。
EDIT- 重读注释并意识到DB是MySQL,要从SQL语句创建新表,您应该使用:
CREATE TABLE YourNewTable
SELECT *
FROM mygrist_tables
WHERE suic_att>=5 AND gender='M';
http://dev.mysql.com/doc/refman/5.0/en/create-table.html http://dev.mysql.com/doc/refman/5.0/en/create-table.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)