FMDB数据库 怎么替换表中相同数据

FMDB数据库 怎么替换表中相同数据,第1张

sqlite不支持replace into语句,update在做更新时原纪录又必须存在,如果原纪录不存在,需要使用insert.

我的处理方式是,每次都先执行insert,如果返回失败(因为有主键,重复纪录是无法插入的),说明纪录已经存在了,则去做update

可以先更新,如果更新条数是0,再进行插入,这样就不会报错了。

另:你忽略了 结束ip地址相同,但是 起始地址不同的情况;画图如下:

|----------------------|

|-------------------------------|

还有 from 比数据库中原有数据 小,同时 to 比数据库中原有数据 大;

|----------------------|

|---------------------------------|

还有就是 数据有交集的情况:

|----------------------|

|------------------|或者:|----------------------|

|------------------|

这个问题比较繁琐了,原因可能在于 IPBlack 的表的设计上,

所以一条sql语句估计搞不定了,

而且在 ip 地址字符串没有规范化前,恐怕没办法比较大小,

例如:(68.128.0.0

132.131.255.255

如果从字符串的角度来比较 6>1,所以 68.128.0.0 >132.131.255.255 )

你需要编个程序来实现你的需求了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9877654.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存