mysql 中where in怎么传字符串进去给In 50

如有个表getid里有一个字符串字段ID‘1,2,3,4’这时候我要用select*fromstudentwhereidin(getid里面的1234)。就是把id为1为... 如有个表getid里有一个字符串字段ID ‘1,2,3,4’
这时候我要用 select * from student where id in(getid里面的 1 2 3 4)。就是把id为1 为2 为3 为4 的同学的信息查询出来怎么做,不采用临时表,不去解析这个字符串,怎么做到以上我想要的效果?
我有一字符串 str='1,2,3,4',我要调用存储过程getmsg(str),请问我这个存储过程里面,如何正确写select * from userbase where userid in(str),也就是查询userid 为1到4 的数据。str是不能直接放在in里面的,所以我卡在这里,懂了吗?回答出来加50分
展开
 我来答
lovetzy123
2019-09-17 · 超过10用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:13.9万
展开全部
字段是字符用in就是不行的了,用instr,不过这个用起来有点技巧,否则查询值会多点。这个不是回答范围了,不多说。instr(columns, id) 样式 instr('1,2,3',id)
匿名用户
2019-11-14
展开全部
我也遇到了一样的问题,百度了一下午,找到了答案 有个 find_in_set()的函数
具体如下 select * from student where find_in_set(id, (select getid from.....))
第一个参数是你要筛选的字段, 第二个参数是范围的字符串 可以是子查询 类似'1,2,3,4'的字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小白的分享
推荐于2017-11-24 · TA获得超过230个赞
知道小有建树答主
回答量:843
采纳率:0%
帮助的人:542万
展开全部
当然用表连接了 ,不过要有连接字段
给你写个左连接把
select * from student left join getid on student.id=getid.id and getid.id in(1,2,3,4);
你表达的不清楚 连接查询一定要有连接字段
如果id 是字符串 "1,2,3,4" 那就要用到存储过程 不然我也解决不了
临时表 ??你说的视图吧
更多追问追答
追问
简单的说,就是我怎么执行where in (str)这个语句,in里面是不支持字符串的,str ='1,2,3,4'
我如何查出这四个ID的所有数据
追答
存储过程可以分割字符串
in() 里面就不支持字符串 你当然传不进去
你把两个表具体字段贴上 你表达的有问题还是 你自己建表本身有问题
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zuoqun0
2017-12-04
知道答主
回答量:1
采纳率:0%
帮助的人:927
展开全部
直接用${str}就可以,别用#,记得给分哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gongmeng1234
2013-04-19
知道答主
回答量:5
采纳率:0%
帮助的人:7803
展开全部
in后面跟个表不就可以了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式