C# 如果不存在,则插入MySql
仅当MySql表中不存在行时,我才想将该行添加到MySql表。此命令:C# 如果不存在,则插入MySql,c#,mysql,.net,C#,Mysql,.net,仅当MySql表中不存在行时,我才想将该行添加到MySql表。此命令: INSERT INTO client.viewcount (clientid, userid) SELECT * FROM (SELECT '1111111', '222') AS tmp WHERE NOT EXISTS ( SELECT clientid,userid FROM client.viewcount WHERE clientid = '1111111' AND userid = '222' ) LIM
INSERT INTO client.viewcount (clientid, userid)
SELECT * FROM (SELECT '1111111', '222') AS tmp
WHERE NOT EXISTS (
SELECT clientid,userid FROM client.viewcount WHERE clientid = '1111111' AND userid = '222'
) LIMIT 1;
只有在表中不存在时,它才是工作和插入。
问题是我有另一张桌子
Users
id userid viewcount
1 123456 45
2 987741 62
3 741369 20
我希望能够增加用户的viewcount
。
比如:
如果我加上
我可以在一个应用程序中实现它吗?也许“替换到”可以帮助您:它插入(或更新,如果记录已经存在)。未尝试此操作,因此可能会出现一些错误(没有可以尝试此操作的表),但应该可以工作
DECLARE @viewcount INT;
SET @viewcount = 0;
IF NOT EXISTS (SELECT clientid,userid FROM client.viewcount WHERE clientid = @clientid AND userid = @userid)
BEGIN
INSERT INTO client.viewcount (clientid, userid)
VALUES (@clientid, @userid)
SELECT @viewcount = viewcount FROM [Users] WHERE clientid = @clientid AND userid = @userid
SET @viewcount = @viewcount + 1;
UPDATE [Users] SET viewcount = @viewcount
WHERE clientid = @clientid AND userid = @userid
END
是否仅当SELECT clientid、userid FROM client.viewcount(其中clientid='1111111'和userid='222'未返回行)时才插入?您的SQL很难理解。@Onam我只想在该clientid和用户id不存在时添加,并增加用户表中的viewcount如果不存在,我插入的命令已经插入,但我也想增加另一个表中的viewcount。本质上,如果不插入它,请检查行是否存在。然后获取viewcount(通过选择@viewcount)增量并更新它。
IF EXISTS(SELECT 1 FROM UserTable WHERE clientid = @clientid AND userid = @userid )
BEGIN
UPDATE ViewcountTable SET viewcount = viewcount+1
WHERE clientid = @clientid AND userid = @userid;
END
ELSE
BEGIN
INSERT INTO UserTable (clientid, userid);
INSERT INTO ViewcountTable (userid, 0);
END IF;
DECLARE @viewcount INT;
SET @viewcount = 0;
IF NOT EXISTS (SELECT clientid,userid FROM client.viewcount WHERE clientid = @clientid AND userid = @userid)
BEGIN
INSERT INTO client.viewcount (clientid, userid)
VALUES (@clientid, @userid)
SELECT @viewcount = viewcount FROM [Users] WHERE clientid = @clientid AND userid = @userid
SET @viewcount = @viewcount + 1;
UPDATE [Users] SET viewcount = @viewcount
WHERE clientid = @clientid AND userid = @userid
END