前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

exists

作者头像
阿超
发布2022-08-21 14:02:19
3850
发布2022-08-21 14:02:19
举报
文章被收录于专栏:快乐阿超快乐阿超

我们可以使用exists代替in查询:

阿里编码规约第五条第(三)条第9条:

  1. 【推荐】in操作能避免则避免,若实在避免不了,需要仔细评估in后边的集合元素数量,控制在1000个之内。

我们可以在子元素多的情况下,使用exists查询

比如下面这个in查询

代码语言:javascript
复制
SELECT
	* 
FROM
	sys_user AS a 
WHERE
	id in (
	SELECT
		user_id
	FROM
		sys_user_role AS b 
	WHERE
		b.role_id IN ( SELECT id FROM sys_role AS c WHERE b.role_id = c.id AND c.role_code LIKE '%o%' ));

可以改为:

代码语言:javascript
复制
SELECT
	* 
FROM
	sys_user AS a 
WHERE
	EXISTS (
	SELECT
		user_id
	FROM
		sys_user_role AS b 
	WHERE
	a.id = b.user_id 
	AND EXISTS ( SELECT id FROM sys_role AS c WHERE b.role_id = c.id AND c.role_code LIKE '%o%' ));
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档