sql语句中in的用法

其实是一个php订单系统,订单表里存的是id号,格式是1@2@3@,也就是说每一个ID中间用@隔开的。我现在想提取出所有的产品名称,我的写法是:select*fromta... 其实是一个php订单系统,订单表里存的是id号,格式是1@2@3@,也就是说每一个ID中间用@隔开的。我现在想提取出所有的产品名称,我的写法是:select * from table WHERE id IN ('$d11') order by id desc"; 其中$d11这个变量就是表中存的id(1@2@3@)。我要问的是我这么写之后为什么只显示第一个id号的产品,也是就id是1的产品。 应该怎么写才能都显示出来。
like 当然不行, 这位仁兄好像对like不是很了解啊。
展开
 我来答
覃慕蕊速岚
游戏玩家

2019-06-28 · 非著名电竞玩家
知道大有可为答主
回答量:1.1万
采纳率:31%
帮助的人:891万
展开全部
你这样构造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是先执行外查询,再执行子查询,找到外查询记录后和只查询对比符合条件的,如果外查询和子查询的条目数差异很大,那么效率相差很明显的。
令槐喻倩秀
2019-11-07 · TA获得超过3699个赞
知道大有可为答主
回答量:3182
采纳率:34%
帮助的人:246万
展开全部
你这样构造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条件上来说.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浑靓幸冷之
2020-03-02 · TA获得超过1164个赞
知道小有建树答主
回答量:1257
采纳率:100%
帮助的人:5.4万
展开全部
没有这样用的,估计是写错了,应该是半角点“.”。score!
course应该是score.course表示数据库score的course表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凤溶律丰
2019-07-20 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:34%
帮助的人:885万
展开全部
我刚才好像回答过一个了
触发器主要的作用是:不能插入00000001的编号
create
trigger
tri_insert----触发器名
  on
student--表名
  for
insert--插入操作
  as
  declare
@student_id
char(10)--定义变量
  select
@student_id=s.student_id
from
--把符合条件的id赋值给变量
  student
s
inner
join
inserted
i
  on
s.student_id=i.student_id
  if
@student_id='0000000001'--如果id=''0000000001''
  begin
  raiserror('不能插入1的学号!',16,8)--提示信息:不能插入1的学号
  rollback
tran--语句发回
不执行插入操作的
  end
  go
]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuyouqin2
推荐于2018-05-09 · TA获得超过281个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:298万
展开全部
in 里面不同的id是要用逗号隔开的in(1@,2@) 如果i是字符型的 每个id 都要加上单引号
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式