MySQL IN 和 NOT IN () 空列表报错

博客探讨了MySQL中使用IN和NOT IN操作符时遇到的空列表报错问题。当直接使用字面量如'IN()'时,MySQL会报错,而如果是子查询形式如'IN(SELECT xxx FROM xxx)',即使子查询结果为空也不会出错。作者对于MySQL未处理这种情况表示好奇,并表达了如果理解了源码会尝试修复这个特性的想法。
摘要由CSDN通过智能技术生成

原文地址: MySQL IN 和 NOT IN () 空列表报错

欢迎访问我的博客: http://blog.duhbb.com/

  • 如果你主动在 SQL 语句中写 IN (), 则会报错;常见于 MyBatis 或者自己拼写的 SQL 语句中, 如果使用字面量一定要注意这一点;
  • 如果你是 IN (SELECT xxx FROM xxx) 这种的话, 即使 SELECT xxx FROM xxx 为空也不会报错.

比较好奇的是, 感觉这个挺简单的, 为啥 MySQL 就不处理一下呢?

要是我读懂了 MySQL 的源码, 我就把这个特性加上去, 嘿嘿!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值