我有一张有此数据的表格

mysql> SELECT * FROM prueba;
+----+------+------+------+
| id | U1   | U2   | cant |
+----+------+------+------+
|  2 | U123 | U124 |    2 |
+----+------+------+------+


每当执行该语句时,我都希望将“ cant”增加1。
但是,如果该行不存在,则必须创建该行。
U1和U2列是数据对,这意味着U1,U2对是唯一的,那就是要搜索记录是否存在的条件。

这是我到目前为止所做的。

select U1,U2,cant,
    (
        case when exists (select U1,U2 from prueba where U1='U123'
        and U2='U124')
            then 1
            else 0
        end
    ) as tmp

    from prueba

最佳答案

请参见insert-to-table-or-update-if-exists-mysql中可接受的答案。这个想法是使用MySQL

INSERT INTO ... ON DUPLICATE KEY UPDATE ...

关于mysql - 如果行不存在主键,则使用SQL语句自动增加列中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26870970/

10-09 19:36