在mysql中,select语句内in常用于where表达式中,其作用是查询某个范围内的数据,in查询的范围数据并不一定是明确的,可能会包含子查询语句,语法为“select * from where...in(范围数据或者子查询语句)”。
本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。
一、基础用法
mysql中in常用于where表达式中,其作用是查询某个范围内的数据。
select * from where field in (value1,value2,value3,…)
当 IN 前面加上 NOT 运算符时,表示与 IN 相反的意思,即不在这些列表项内选择
select * from where field not in (value1,value2,value3,…)
二、IN 子查询
更多情况下,IN 列表项的值是不明确的,而可能是通过一个子查询得到的:
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=0)
在这个 SQL 例子里,我们实现了查出所有状态为 0 的用户(可能是被禁止)的所有文章。首先通过一个查询得到所有所有 status=0 的用户:
SELECT uid FROM user WHERE status=0
然后将查询结果作为 IN 的列表项以实现最终的查询结果,注意在子查询中返回的结果必须是一个字段列表项。
示例:查询book表中id为2和4的所有数据:
有book数据表,内容如下:
查询语句和查询结果见如下图示:
推荐学习:mysql视频教程
以上是mysql的select语句中in的用法是什么的详细内容。更多信息请关注PHP中文网其他相关文章!