mysql in 的两种用法

本文详细介绍了MySQL中IN关键字的两种应用方式,一种是在IN后面跟一张表(记录集),另一种是直接使用字符串集。通过具体示例,解释了如何使用IN关键字来筛选数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述MySQL 的in 的两种用法:

他们分别是在 in 关键字后跟一张表(记录集),以及在in后面加上字符串集。

先讲后面跟着一张表的。


首先阐述三张表的结构:

s(sno,sname.sex,age,dept)   //学生信息表

c(cno,cname,tname)      //课程信息表

sc(sno,cno,grade)              //课程选修信息表

update sc set grade = 0 where sc.cno in (select cno from c where c.cname = '物理') and sc.grade < 60; 比如说这条sql语句 ,这条sql语句是将课程为物理的不及格的分数设定为0分。

这个例子里的in后面就跟着一张由select语句 产生的一张临时表。


好,那么现在再来看下面的in后面跟着一个字符串集,其实也不见得非得是字符串集。

select * from s where sname in ('aaa','bbb','ccc');




MySQL中,IN是一个用于比较给定值与一组值是否匹配的运算符。通过IN运算符,我们可以在查询中根据给定的值来筛选出匹配的记录。 引用提到了一个例子,使用IN运算符来查询id为2或3的记录,可以写成以下形式: SELECT * FROM sys_user WHERE id IN (2, 3) 这条SQL语句会返回id为2或3的sys_user表中的记录。 引用和介绍了在使用IN子查询时,为了提高查询效率,可以采取以下两种方法: 1. 使用LEFT JOIN进行查询: SELECT zd.* FROM (SELECT DISTINCT zdcode FROM basic_h WHERE zdcode != "") AS h LEFT JOIN basic_zdjbxx zd ON zd.suiji = h.zdcode 这条SQL语句使用了LEFT JOIN来连两个表,从basic_h表中获取不重复的zdcode列的值,并将其与basic_zdjbxx表的suiji列进行比较,返回匹配的记录。 2. 使用多次查询: SELECT * FROM basic_zdjbxx WHERE suiji IN (SELECT zdcode FROM (SELECT zdcode FROM basic_h WHERE zdcode != "") AS h) 这条SQL语句中的IN子查询获取了basic_h表中不重复的zdcode列的值,然后与basic_zdjbxx表的suiji列进行比较,返回匹配的记录。 以上就是MySQL中使用IN运算符的用法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [mysqlin用法详解](https://blog.youkuaiyun.com/longgeaisisi/article/details/90694573)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [MySQL——IN用法详解](https://blog.youkuaiyun.com/MaNongXf/article/details/84554782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值