读取备案数据写入数据库,备案状态为0
如果备案操作成功,则状态为1,失败则为2
如何在第二次插入已经备案的数据到表里并满足以下插入条件:
1、账号相同 状态为2 则不插入数据,更新数据,将状态更新为1
2、账号相同 状态为1 则不插入数据,也不更新数据
9条回答 默认 最新
- 王胖胖_ 2021-11-16 10:28关注本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
读取备案数据写入数据库,备案状态为0
如果备案操作成功,则状态为1,失败则为2
如何在第二次插入已经备案的数据到表里并满足以下插入条件:
1、账号相同 状态为2 则不插入数据,更新数据,将状态更新为1
2、账号相同 状态为1 则不插入数据,也不更新数据
收起
你的表有没有建唯一索引,如果没有的话,无法实现。如果有的话可以用ON DUPLICATE KEY UPDATE
如 test1表中code字段为唯一索引,假如用code表示你说的账号,status表示状态,就可以用以下语句实现你说的
1、账号相同 状态为2 则不插入数据,更新数据,将状态更新为1
2、账号相同 状态为1 则不插入数据,也不更新数据
INSERT INTO test1 (code, name,status)
VALUES ('001', 'test1',0)
ON DUPLICATE KEY UPDATE status=if(status=2,1,status)
噢噢,如果表里有这条数据:状态为2则更新成0,状态为1不更新也不插入数据,状态为0也不更新也不插入;如果表里没有就插入,这段语句怎么写呢
我举例那个就已经会表里没有数据就会执行插入的
如果存在的时候,状态为2则更新成0,只要把后面的if(status=2,1,status)改成if(status=2,0,status)就可以了。
你可以把我上面的例子换成你对应表试试,但前提是你的表要有唯一索引
这个最后的if可以写and吗?就是多个条件
报告相同问题?