如果id不存在则添加行,否则添加到单元格中的值

时间:2016-05-04 14:21:42

标签: mysql

我有一个名为Anonymat_Table的Mysql表(两列AnonymatMoyenne)。如果AnonymatVarChar(45))不存在,我需要添加一行。否则为单元格Moyenne添加值。

+----------+-----------+
| Anonymat |  Moyenne  |
+----------+-----------+
| EzBn142d |    12.00  |
+----------+-----------+

我正在构建一个WPF项目,我有一个带有两个文本框和一个按钮的表单,所以如果我单击按钮并在文本框中写入(EzBn142d和2.00),它会将表格更改为

+----------+-----------+
| Anonymat |  Moyenne  |
+----------+-----------+
| EzBn142d |    14.00  |
+----------+-----------+

如果我在输入文本框(Nbdjm20DV和4.00)后单击按钮,它会在表格中添加一行并显示为

+-----------+-----------+
| Anonymat  |  Moyenne  |
+-----------+-----------+
| EzBn142d  |   14.00   |
| Nbdjm20DV |    4.00   |
+-----------+-----------+

2 个答案:

答案 0 :(得分:3)

您可以使用ON DUPLICATE KEY。因此,主键或uniqe键必须在FIELD Anonymat上定义。

<强>样品

INSERT INTO Anonymat_Table (Anonymat,Moyenne) 
VALUE('bernd' , 13.99)
ON DUPLICATE KEY UPDATE  Moyenne = Moyenne + VALUES(Moyenne);

它也适用于像这样的多行

INSERT INTO Anonymat_Table (Anonymat,Moyenne) 
VALUE
('bernd' , 13.99),
('tom' , 1.99),
('mark' , 3.95),
('anna' , 0.95)
ON DUPLICATE KEY UPDATE  Moyenne = Moyenne + VALUES(Moyenne);

答案 1 :(得分:1)

我认为您也可以使用IF EXISTS来实现您想要的目标。

示例:

IF EXISTS(SELECT * FROM Anonymat_Table WHERE Anonymat = anonymat)
    UPDATE Anonymat_Table
       SET [Moyenne] = moyenne + Moyenne
    WHERE Anonymat = anonymat
ELSE
    INSERT INTO Anonymat_Table
           ([Anonymat]
           ,[Moyenne])
     VALUES
           (anonymat
           ,moyenne)

在上面的例子中,#An; Anonymat和Moyenne是专栏名称&#34;和#34; anonymat和moyenne是您的计划中的价值&#34;