Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果不存在,则插入MySql_C#_Mysql_.net - Fatal编程技术网

C# 如果不存在,则插入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

仅当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'
) 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