MySQL上传多条数据的问题

snakec0047 2015-03-27 03:00:50
现在有一张表tmp里面只有一列prov,有很多条数据
还有一张表叫mobile,里面建立了一条空列叫sheng行数相同
现在想把tmp里面的数据加到这个空列里来

我用update moblie set sheng=(select prov from tmp);
结果报错,说子查询得到的数据超过1条,这个应该怎么解决
...全文
131 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
薛定谔的DBA 2015-03-28
  • 打赏
  • 举报
回复
给楼主写了一个脚本,moblie与tmp 按当前的存储排序一对一更新
--	drop table moblie,tmp
create table moblie(name varchar(10),sheng varchar(10))
create table tmp(prov varchar(10))


insert into moblie(name)
values('dd'),('y'),('hj'),('bn'),('re'),('hf'),('dfds'),('oio'),('er'),('df')

insert into tmp(prov)
values('43'),('56'),('24'),('65'),('66'),('34'),('7'),('0'),('34'),('33')


--	select * from [dbo].moblie
--	select * from [dbo].tmp

;with moblie2 as(
	select row_number()over(order by (select 0)) id,name,sheng from [dbo].moblie 
), tmp2 as(
	select row_number()over(order by (select 0)) id,prov from [dbo].tmp 
)
update a set a.sheng = b.prov
from moblie2 a inner join tmp2 b on a.id=b.id

流逝 2015-03-27
  • 打赏
  • 举报
回复
你加这个有对应关系吗?还是任意加
snakec0047 2015-03-27
  • 打赏
  • 举报
回复
引用 1 楼 jamesrggg 的回复:
换个思路吧 Insert Into mobile Select prov From Tmp
但是mobile表里面还有好多别的列,如果用insert需要给定所有参数
shoppo0505 2015-03-27
  • 打赏
  • 举报
回复
1.给两个表分别添加新自增列,类型为int, 2.然后执行 update moblie set sheng =prov from tmp where mobile.id = tmp.id 3.删除新增列 其实不用手动添加新列也可以,可以用动态编号,但是代码就比较长了
jamesrggg 2015-03-27
  • 打赏
  • 举报
回复
换个思路吧 Insert Into mobile Select prov From Tmp

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧