【发布时间】:2014-05-02 13:16:17
【问题描述】:
如何从 select 中创建具有给定列名的临时表?
我的意思是这样的(我放“as newData”只是为了说明这个想法,这是行不通的):
CREATE TEMPORARY TABLE IF NOT EXISTS tmp AS
SELECT id, min(data) as newData FROM myTable WHERE id > 100 GROUP BY id;
所以我可以得到一个像这样的表:
+-------------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+-------+
| id | int(10) unsigned | NO | | 0 | |
| newData | int(10) unsigned | YES | | NULL | |
+-------------------+------------------+------+-----+---------+-------+
问题是如果我直接建表,第二个字段名包含禁止符号,不知道怎么用:
+-------------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+-------+
| id | int(10) unsigned | NO | | 0 | |
| min(data) | int(10) unsigned | YES | | NULL | |
+-------------------+------------------+------+-----+---------+-------+
【问题讨论】:
标签: mysql temp-tables create-table