请教个sql语句 先查询有没有再插入
初学mysql想实现这样一个功能先查询表里有没有叫tom的如果没有那把id=1的人的名字改成tom怎么写在一条sql语句里呀报错[SQL]updateuser_table...
初学mysql
想实现这样一个功能
先查询表里有没有叫tom的
如果没有 那把id=1的人的名字改成tom
怎么写在一条sql语句里呀
报错
[SQL] update user_table set uname='p3' where uid='1' and (select count(1) from user_table where uname='p3')=0 ;
[Err] 1093 - You can't specify target table 'user_table' for update in FROM clause
似乎不能对同一个表查询后再更新 怎么办呢 展开
想实现这样一个功能
先查询表里有没有叫tom的
如果没有 那把id=1的人的名字改成tom
怎么写在一条sql语句里呀
报错
[SQL] update user_table set uname='p3' where uid='1' and (select count(1) from user_table where uname='p3')=0 ;
[Err] 1093 - You can't specify target table 'user_table' for update in FROM clause
似乎不能对同一个表查询后再更新 怎么办呢 展开
5个回答
展开全部
你们写的,逻辑性太强,对于初学者很难搞明白
建议这样写:
if not exists (select 1 from user_table where uname='tom')
begin
update user_table set uname='tom' where id=1
end
建议这样写:
if not exists (select 1 from user_table where uname='tom')
begin
update user_table set uname='tom' where id=1
end
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mysql下像你这种情况只能分开来写:
select @row:=count(*) from 表 where uname='tom';
if @row=0 then
update 表 set uname='tom' where uid='1';
end if;
select @row:=count(*) from 表 where uname='tom';
if @row=0 then
update 表 set uname='tom' where uid='1';
end if;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update tabel1 set name='tom' where id=1 and (select count(1) from tabel1 where name='tom')=0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update user_table set uname='p3' where uid='1' and exsits (select '1' from user_table where uname='p3')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用存储过程,不知道MySql里有没有这个。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询