22,209
社区成员
发帖
与我相关
我的任务
分享
;MERGE usecashnow AS T
USING(
SELECT * FROM (VALUES ((select id from users where name='{$username}'), '1', '0', '1','0', {$money}*100, '1',getdate()))S(userid, zoneid, sn, aid, point, cash,status, creatime)
) AS S ON (T.userid=S.userid)--唯一性的列
WHEN MATCHED THEN
UPDATE SET cash=cash+{$money}*100
WHEN NOT MATCHED THEN
insert (userid, zoneid, sn, aid, point, cash,status, creatime)
VALUES(S.userid, S.zoneid, S.sn, S.aid, S.point, S.cash,S.status, S.creatime) ;
如果是SQL Server直接在存储过程 处理
可判断存在时更新,不存在时新增
-- 这样的语法
merge into usecashnow t using users u on t.userid = u.id
when matched then
update set zoneid = 1, sn = 0 -- 别的列,自己添加
when not matched then
insert values(u.id,1,0) -- 别的列,自己添加