“sql”语句中“in”怎么用?

 我来答
小生耶疯狂
2018-04-04 · TA获得超过2183个赞
知道答主
回答量:25
采纳率:0%
帮助的人:3570
展开全部

你这样构造in的范围不对。你这样是把in后面处理成一个字符串了。而in后面跟的应该是一个范围。

你可以自己写一个返回数据集的函数来将aa.ddid值处理成in的范围, 类似于:

假设函数: ft01(nvarchar(1000)) returns table tb (val int)。

那么, 这样更新里面子查询的in条件:

where id in (select val from ft01(aa.ddid))。

另外, 此解决方法只是从in条件上来说。

如果子查询只有1条记录,in和=是没有区别,如果子查询有多条记录,用=会出错的,所以in是无论只查询有多少条记录都可以使用,而=只有当子查询只有1条记录的时候才能使用。

in和exists理解上其实是差不多,但对数据库而言,in的执行顺序是先执行只查询条件,然后把记录和外查询核对,找符合条件的。

而exists是先执行外查询,再执行子查询,找到外查询记录后和只查询对比符合条件的,如果外查询和子查询的条目数差异很大,那么效率相差很明显的。

wuyouqin2
2010-06-28 · TA获得超过281个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:299万
展开全部
in 里面不同的id是要用逗号隔开的in(1@,2@) 如果i是字符型的 每个id 都要加上单引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kg_gx
2010-06-28 · TA获得超过165个赞
知道答主
回答量:168
采纳率:0%
帮助的人:112万
展开全部
select * from table WHERE id like ('%$d11%') order by id desc

用like 就行了 不要用in .
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式