问题场景
如果数据插入错了,我们只想删除某张表中的指定数据,比如删除第m行到第n行的数据应该怎么操作呢?
解决方案
为了方便演示,我们这里举例说明,这里的表格,我们不小心在插入数据时,id=4
到id=6
的内容和前面的id=1
到id=3
内容重复了,这里我们想删除应该如何操作?
id | name |
1 | 猪猪侠 |
2 | 猪头 |
3 | 猪猪 |
4 | 猪猪侠 |
5 | 猪头 |
6 | 猪猪 |
7 | 猪老师 |
8 | 猪大侠 |
- 首先我们需要确认要删除的
id
,通常你处理的数据肯定不会是2、3个,因此我们使用下面的语句,筛选出id为4-6之间的
SELECT * FROM "A" where id>= 4 AND id<=6
id | name |
4 | 猪猪侠 |
5 | 猪头 |
6 | 猪猪 |
![图片[1]-如何删除Sqlite数据库中指定行之间的数据?-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/09/20220920102529466.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
- 然后删除我们查询到的这些数据即可
delete from A where id in(SELECT id FROM "A" where id>= 4 AND id<=6)
![图片[2]-如何删除Sqlite数据库中指定行之间的数据?-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/09/20220920102709434.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
然后查看发现数据中第4行到第6行内容已经移除
![图片[3]-如何删除Sqlite数据库中指定行之间的数据?-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/09/20220920102737898.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
- 小技巧:有些表设计不够规范,如果没有唯一的ID,我们可以通过rowid来进行定位(每张表隐藏的且自增的)
SELECT rowid FROM "A" where id>= 4 AND id<=6
拓展
当然,您还可以删除A表前m行数据,方法类似
delete from A where id in(SELECT id FROM "A" limit m)
比如我们,我们删除前5行数据
我们先搜索前5行的数据
SELECT * FROM "A" limit 5
![图片[4]-如何删除Sqlite数据库中指定行之间的数据?-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/09/20220920102329547.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
然后在进行删除
delete from A where id in(SELECT id FROM "A" limit 5)
![图片[5]-如何删除Sqlite数据库中指定行之间的数据?-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/09/20220920102602442.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
然后查看,发现就剩下第5行之后的数据了
![图片[6]-如何删除Sqlite数据库中指定行之间的数据?-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/09/20220920102629167.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
© 版权声明
THE END
- 最新
- 最热
只看作者