2012-03-26 112 views
0

我需要编写以下查询,以便“att”字段始终为常量。mysql是这个查询可能吗?

INSERT INTO index(id,val,att) (SELECT ID,val FROM product), 14; 

“14” 是一个常数

如何将我写的,如果连可能吗?

回答

4
INSERT INTO `index`(id,val,att) SELECT id,val,14 FROM product 

指数是无法为表一个非常好听的名字顺便说一句...你可以使用反引号(`)来逃避它,而是更好拿起另一个名字。

+0

我知道,那个名字甚至不可能我认为 – nick 2012-03-26 06:39:51

+1

在INSERT ... SELECT上不需要VALUES,而且select不需要在parens中。 – Ilion 2012-03-26 06:44:34

+0

哦谢谢!即使没有VALUES,它也可以工作。感谢大家如此快速的回应! – nick 2012-03-26 06:45:44

1

您可以使用此:

INSERT INTO `index` (id,val,att) 
SELECT ID,val,14 FROM product 
2

只需添加常数在SELECT声明

INSERT INTO `index`(id, val, att) (SELECT ID, val, 14 FROM product); 
0
INSERT INTO index(id,val,att) VALUES (SELECT id,val,14 FROM product) 

试试吧

1

您可以简单地选择一个数字,这将是回。这应该工作:

INSERT INTO `index`(id,val,att) SELECT ID,val,14 FROM product; 

注:

  1. 你做需要插入值关键字。选择 语句。 http://dev.mysql.com/doc/refman/5.1/en/insert-select.html
  2. 正如另一个人提到的,索引不是一个很好的表名,因为它是一个保留字。
1
INSERT INTO `Index`(id, val, att) 
SELECT ID, val, 14 
FROM Product 
0

INSERT INTO TABLE_NAME(ID,缬氨酸,ATT)SELECT ID,缬氨酸,14从产品

不使用表名像索引,并且没有必要()从表中选择。