标准说明:
INSERT 语句中的 SELECT 子查询可用于将一个或多个表或视图中的值添加到另一个表中。使用 SELECT 子查询还可以同时插入多行.
INSERT INTO 表名 as a (
a.列1,a.列2,a.列3...
)
SELECT
b.列1,b.列2,b.列3...
FROM 表名 as b
WHERE 条件;
实例1:
插入数据之前,先从其他数据表查询得到结果。
这里还用到了字段和字符串的拼接concat,不是用+哦!
INSERT INTO `v9_hits`(
`v9_hits`.`hitsid`,`v9_hits`.`catid`,`v9_hits`.`views`
)
SELECT
concat('c-1-',b.`id`),c.`catid`,b.`readpoint`
FROM `v9_news_data` as b,`v9_news` as c
Where
c.`id` = b.`id`
单独的拼接更新:
mysql下sql语句 update 字段=字段+字符串
mysql下sql语句令某字段值等于原值加上一个字符串
update 表明 SET 字段= 'feifei' || 字段; (postgreSQL 用 || 来连贯字符串)
MySQL连贯字符串不能利用加号(+),而利用concat。
比方在aa表的name字段前加字符’x’,利用:
update aa set name=concat('x',name)
实际例子:
update `v9_hits` set `hitsid`=concat('c-1-',`hitsid`) where `updatetime` = 0;
附:update
UPDATE `v9_member` a, `destoon7_member` b
SET a.`nickname` = b.`truename`
WHERE a.`username` = b.`username`