欢迎光临
我们一直在努力

MySQL删除not in语句使用方法 (删除数据库中 not in的使用)

MySQL是一个开源的关系型数据库管理系统,广泛应用于各种应用场景中。在使用MySQL时,我们经常需要删除一些数据,而其中not in语句是一个非常有用的工具,可以帮助我们快速、方便地删除无用的数据。本文将为你详细介绍MySQL删除not in语句的使用方法。

一、not in语句的定义

not in语句是MySQL中的一种条件语句,用于指定SQL查询时返回值中不包含某些值。

语法格式如下:

“` SQL

SELECT column_name(s)

FROM table_name

WHERE column_name NOT IN (value1, value2, …);

“`

其中column_name指需要查询的列,table_name指需要查询的表,NOT IN表示返回不包含括号中指定值的所有行。

二、not in语句的使用场景

not in语句可以应用于各种场景,例如:

1. 待删除的数据不在指定范围内:可以使用not in语句对需要删除的数据进行筛选,只保留在指定范围外的数据。

2. 删除或更新表中的指定行:使用not in语句可以准确地删除或更新表中的指定行。

3. 数据库优化:使用not in语句可以优化数据库查询效率,减少不必要的数据加载和运算量。

以下将分别介绍not in语句在这些场景中的使用方法。

三、删除指定范围外的数据

在进行数据清理时,有时需要删除数据库中不在指定范围内的数据。例如,删除所有不在“用户ID在1到100之间”的用户数据。

使用not in语句可以轻松实现这个目标,具体代码如下:

“` SQL

DELETE FROM users

WHERE user_id NOT IN (1,2,3,4,….100);

“`

其中users是需要删除的表,user_id是需要删除的数据列。通过将需要删除的数据ID列的ID值都列出,并将not in语句用于where条件中,可以实现只删除不在指定范围内的数据的效果。

四、删除指定行

不仅可以删除指定范围外的数据,还可以使用not in语句准确地删除表中某些行。例如,想要删除users表中最近一年没有登录的用户数据。

使用not in语句可以轻松实现这个目标,具体代码如下:

“` SQL

DELETE FROM users

WHERE user_id NOT IN (

SELECT user_id

FROM user_login_history

WHERE login_time > DATE_SUB(NOW(), INTERVAL 1 YEAR)

);

“`

其中users是需要删除的表,user_id是需要删除的数据列,user_login_history是需要用来比较的表。通过将需要用到的表中的字段都放入IN子句中,可以实现只删除满足条件的数据的效果。

五、数据库优化

在进行大型数据库操作时,查询速度可能会变慢。这时,可以使用not in语句对查询速度进行优化。例如,在进行数据清理时,要删除不在指定范围内的大量数据。这种情况下,如果一条一条地删除数据,可能会十分耗时。

使用not in语句可以大幅度提升操作效率。具体代码如下:

“` SQL

DELETE FROM users

WHERE user_id NOT IN (

SELECT user_id

FROM users_temp

);

“`

其中users是需要删除的表,user_id是需要删除的数据列,users_temp是查询需要用到的表。与以上例子类似,通过将需要查询的表中的字段都放入IN子句中,可以实现快速、准确地删除满足条件的数据的效果。

六、

本文为你详细介绍了MySQL删除not in语句的使用方法。在实际操作中,需要根据具体的情况选择不同的场景和方法。在进行数据清理、性能优化等操作时,not in语句是一个非常有用的工具。通过灵活运用not in语句,可以轻松实现满足特定条件的数据删除、更新等操作,从而提高MySQL数据库管理效率,帮助你更好地处理各种数据库问题。

相关问题拓展阅读:

  • SQL语句删除重复的记录
  • 如何删除数据库中A表和B表中的重复数值

SQL语句删除重复的记录

COL1 中有重复记录(COL1,COL2为主键),如何删除

1、有少数重复记录(在col1,col2上有索引比较好)

DELETE T

WHERE (COL1,COL2) IN

(SELECT COL1,COL2 FROM T GROUP BY COL1,COL2 HAVING COUNT(*) > 1)

AND

ROWID NOT IN

(SELECT MIN(ROWID) FROM T GROUP BY COL1,COL2 HAVING COUNT(*) > 1)

2、大部份记录有重复记录

DELETE T WHERE ROWID NOT IN

(SELECT MIN(ROWID) FROM T GROUP BY COL1,COL2)

3、其他写法

DELETE T WHERE ROWID IN

(SELECT A.ROWID FROM T A,T B

WHERE A.COL1=B.COL1 AND A.COL2 = B.COL2 AND A.ROWID > B.ROWID)

######################################

10. 删除重复记录

更高效的删除重复记录方法 ( 因为使用了ROWID)

DELETE FROM EMP E

WHERE E.ROWID > (SELECT MIN(X.ROWID)

FROM EMP X

WHERE X.EMP_NO = E.EMP_NO);

11. 用TRUNCATE替代DELETE

当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是

恢复到执行删除命令之前的状况)

而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息.当命令运行后,数据不能被恢复.因此很少的资源被调用,执行时间也会很短.

(译者按: TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML)

12. 尽量多使用COMMIT

只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少:

COMMIT所释放的资源:

a. 回滚段上用于恢复数据的信息.

b. 被程序语句获得的锁

c. redo log buffer 中的空间

d. ORACLE为管理上述3种资源中的内部花费

删除重复的数据

delete from tb where id not in (

select id from

(select fileSize,fileName ,max(id) id from tb group by filesize,filename ) a

)

现在完成了重复数据的删除,主要是利用了找出某个分组中更大的那个id,其中包括了所有不重复的id,然后使用not in将需要保留的排除。

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

delete from people where peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1) and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName)>1)

3、查找表中多余的重复记录(多个字段)

select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录

select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

6.消除一个字段的左边的之一位:

update tableName set =Right(<title>,(len(<title>)-1)) where Title like ‘村%’</p> <p><p> 7.消除一个字段的右边的之一位:</p> <p> update tableName set <title>=left(<title>,(len(<title>)-1)) where Title like ‘%村’</p> <p><p> 8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录 </p> <h3 id="如何删除数据库中A表和B表中的重复数值">如何删除数据库中A表和B表中的重复数值</h3> <p>去掉重复值计数的三种方法判猜,函数搏冲悄法、基渣删除重复值法、透视表法,各种方法均有讲解,可以择优使用。</p> <p>可以写个过程;</p> <p>先找出 A,B表中重复数据的id,然后旅芦核在根据id,分别把A,B表哗庆中相应数据删除 oracle中可以用拆掘游标处理</p> <p>关于删除数据库中 not in的使用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。</p> </article> <div class="post-copyright">未经允许不得转载:<a href="https://www.zudns.com.cn/ask">九八云安全</a> » <a href="https://www.zudns.com.cn/ask/41188.html">MySQL删除not in语句使用方法 (删除数据库中 not in的使用)</a></div> <div class="shares"><dfn>分享到</dfn><a href="javascript:;" data-url="https://www.zudns.com.cn/ask/41188.html" class="share-weixin" title="分享到微信"><i class="tbfa"></i></a><a etap="share" data-share="weibo" class="share-tsina" title="分享到微博"><i class="tbfa"></i></a><a etap="share" data-share="qq" class="share-sqq" title="分享到QQ好友"><i class="tbfa"></i></a><a etap="share" data-share="qzone" class="share-qzone" title="分享到QQ空间"><i class="tbfa"></i></a><a etap="share" data-share="line" class="share-line" title="分享到Line"><i class="tbfa"></i></a><a etap="share" data-share="twitter" class="share-twitter" title="分享到X"><i class="tbfa"></i></a><a etap="share" data-share="facebook" class="share-facebook" title="分享到Facebook"><i class="tbfa"></i></a><a etap="share" data-share="telegram" class="share-telegram" title="分享到Telegram"><i class="tbfa"></i></a><a etap="share" data-share="skype" class="share-skype" title="分享到Skype"><i class="tbfa"></i></a></div> <div class="article-tags"></div> <nav class="article-nav"> <span class="article-nav-prev">上一篇<br><a href="https://www.zudns.com.cn/ask/41187.html" rel="prev">MFC中COleDateTime类怎么使用</a></span> <span class="article-nav-next">下一篇<br><a href="https://www.zudns.com.cn/ask/41189.html" rel="next">天津虚拟主机租用有哪些优缺点</a></span> </nav> <div class="relates relates-imagetext"><div class="title"><h3>相关推荐</h3></div><ul><li><a href="https://www.zudns.com.cn/ask/151639.html"><img data-thumb="default" src="/ask/wp-content/themes/dux/assets/img/random/6.jpg " class="thumb"></a><a href="https://www.zudns.com.cn/ask/151639.html">Java 连接 Redis:实现数据快速传输(java连redis)</a></li><li><a href="https://www.zudns.com.cn/ask/151637.html"><img data-thumb="default" src="/ask/wp-content/themes/dux/assets/img/random/10.jpg" class="thumb"></a><a href="https://www.zudns.com.cn/ask/151637.html">清理使用Java实现Redis过期数据的清理(redisjava过期)</a></li><li><a href="https://www.zudns.com.cn/ask/151635.html"><img data-thumb="default" src="/ask/wp-content/themes/dux/assets/img/random/6.jpg " class="thumb"></a><a href="https://www.zudns.com.cn/ask/151635.html">MongoDB安全之设置账户及密码(mongodb密码)</a></li><li><a href="https://www.zudns.com.cn/ask/151633.html"><img data-src="https://www.zudns.com.cn/ask/wp-content/uploads/2024/03/1676893458-7d195b450ab6d5c.png" alt="巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行-九八云安全" src="https://www.zudns.com.cn/ask/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></a><a href="https://www.zudns.com.cn/ask/151633.html">巧妙利用PARTITION分组排名递增特性解决合并连续相同数据行</a></li><li><a href="https://www.zudns.com.cn/ask/151632.html"><img data-src="https://www.zudns.com.cn/ask/wp-content/uploads/2024/03/1676902071-619868061a9306e.png" alt="springboot +redis 实现点赞、浏览、收藏、评论等数量的增减操作-九八云安全" src="https://www.zudns.com.cn/ask/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></a><a href="https://www.zudns.com.cn/ask/151632.html">springboot +redis 实现点赞、浏览、收藏、评论等数量的增减操作</a></li><li><a href="https://www.zudns.com.cn/ask/151631.html"><img data-thumb="default" src="/ask/wp-content/themes/dux/assets/img/random/6.jpg " class="thumb"></a><a href="https://www.zudns.com.cn/ask/151631.html">利用MSSQL优化数据库性能:组合索引的应用(mssql 组合索引)</a></li><li><a href="https://www.zudns.com.cn/ask/151628.html"><img data-thumb="default" src="/ask/wp-content/themes/dux/assets/img/random/7.jpg " class="thumb"></a><a href="https://www.zudns.com.cn/ask/151628.html">Redis与Maven:实现更高效的技术结合(redis与maven)</a></li><li><a href="https://www.zudns.com.cn/ask/151626.html"><img data-thumb="default" src="/ask/wp-content/themes/dux/assets/img/random/8.jpg " class="thumb"></a><a href="https://www.zudns.com.cn/ask/151626.html">妥善保存MSSQL数据库,避免过期(mssql数据库过期)</a></li></ul></div> </div> </div> <div class="sidebar"> <div class="widget-on-phone widget widget_ui_orbui"><div class="item"><a href="https://www.zudns.com.cn/cdnprice.html" target="_blank"><img src="https://www.zudns.com.cn/ask/wp-content/uploads/2024/03/2023120116281711.png"></a></div></div><div class="widget-on-phone widget widget_ui_posts"><h3>攻防案列</h3><ul><li><a href="https://www.zudns.com.cn/ask/237226.html"><span class="thumbnail"><img data-src="https://www.zudns.com.cn/ask/wp-content/uploads/2024/12/20241226002944-1024x1019.jpg" alt="快来了解4个常见的在线Ping测试工具,轻松检测不同节点网络的延迟速度吧-九八云安全" src="https://www.zudns.com.cn/ask/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></span><span class="text">快来了解4个常见的在线Ping测试工具,轻松检测不同节点网络的延迟速度吧</span><span class="muted">2024-12-26</span></a></li></ul></div><div class="widget widget_block"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8089801583292488" crossorigin="anonymous"></script> <!-- C --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-8089801583292488" data-ad-slot="9914263556" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div><div class="widget-on-phone widget widget_ui_posts"><h3>热门文章</h3><ul><li><a href="https://www.zudns.com.cn/ask/178243.html"><span class="thumbnail"><img data-src=""" alt="html怎么把字和图放一行-九八云安全" src="https://www.zudns.com.cn/ask/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></span><span class="text">html怎么把字和图放一行</span><span class="muted">2024-08-01</span></a></li><li><a href="https://www.zudns.com.cn/ask/91029.html"><span class="thumbnail"><img data-thumb="default" src="/ask/wp-content/themes/dux/assets/img/random/4.jpg " class="thumb"></span><span class="text">在Redis中,数据大小有限制吗(redis缓存的大小限制)</span><span class="muted">2024-05-11</span></a></li><li><a href="https://www.zudns.com.cn/ask/91049.html"><span class="thumbnail"><img data-src="https://www.zudns.com.cn/ask/wp-content/uploads/2024/03/0f6c4ed6839b19be-c5dca4fa7ea3e591-3c56b07dfc4e452865f632c7c4d39c87.jpg" alt="tftpd32+ tftpd64文件传输安装和使用教程-九八云安全" src="https://www.zudns.com.cn/ask/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></span><span class="text">tftpd32+ tftpd64文件传输安装和使用教程</span><span class="muted">2024-05-11</span></a></li></ul></div><div class="widget-on-phone widget widget_ui_orbui"><div class="item"><a href="https://www.98cloud.com/cart?fid=1&gid=1" target="_blank"><img src="https://www.zudns.com.cn/ask/wp-content/uploads/2024/03/2021032602420738.png"></a></div></div></div></section> <footer class="footer"> <div class="container"> <div class="flinks"> <strong>友情链接</strong> <ul class='xoxo blogroll'> <li><a href="https://www.tcptest.cn/">在线Ping</a></li> </ul> </div> <p>© 2010-2025   <a href="https://www.zudns.com.cn/ask">九八云安全</a>   <a href="https://www.zudns.com.cn/ask/sitemap.xml">网站地图</a> </p> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?488c267f1d70da7246e08480daaf71ff"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </div> </footer> <script>window.TBUI={"www":"https:\/\/www.zudns.com.cn\/ask","uri":"https:\/\/www.zudns.com.cn\/ask\/wp-content\/themes\/dux","ajaxurl":"https:\/\/www.zudns.com.cn\/ask\/wp-admin\/admin-ajax.php","ver":"9.1","roll":"1 2","copyoff":0,"ajaxpager":"0","fullimage":"1","captcha":0,"captcha_comment":1,"captcha_login":1,"captcha_register":1,"table_scroll_m":1,"table_scroll_w":"800","pre_color":1,"pre_copy":1,"lang":{"copy":"\u590d\u5236","copy_success":"\u5df2\u590d\u5236","comment_loading":"\u8bc4\u8bba\u63d0\u4ea4\u4e2d...","comment_cancel_edit":"\u53d6\u6d88\u7f16\u8f91","loadmore":"\u52a0\u8f7d\u66f4\u591a","like_login":"\u70b9\u8d5e\u8bf7\u5148\u767b\u5f55","liked":"\u4f60\u5df2\u8d5e\uff01","delete_post":"\u786e\u5b9a\u5220\u9664\u8fd9\u4e2a\u6587\u7ae0\u5417\uff1f","read_post_all":"\u70b9\u51fb\u9605\u8bfb\u4f59\u4e0b\u5168\u6587","copy_wechat":"\u5fae\u4fe1\u53f7\u5df2\u590d\u5236","sign_password_less":"\u5bc6\u7801\u592a\u77ed\uff0c\u81f3\u5c116\u4f4d","sign_username_none":"\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a","sign_email_error":"\u90ae\u7bb1\u683c\u5f0f\u9519\u8bef","sign_vcode_loading":"\u9a8c\u8bc1\u7801\u83b7\u53d6\u4e2d","sign_vcode_new":" \u79d2\u91cd\u65b0\u83b7\u53d6"},"turnstile_key":""}</script> <script type="text/javascript" src="https://www.zudns.com.cn/ask/wp-content/themes/dux/assets/js/libs/jquery.min.js?ver=9.1" id="jquery-js" defer></script> <script data-minify="1" type="text/javascript" src="https://www.zudns.com.cn/ask/wp-content/cache/min/1/ask/wp-content/themes/dux/assets/js/loader.js?ver=1709615159" id="loader-js" defer></script> </body> </html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1747102285 -->