mysql select *... where id in (select 字符串 from ... )问题?

Chaiming 2008-06-12 03:05:47
mysql select *... where id in (select 字符串 from ... )问题?其中字符串的内容是'12,11,10,4';如何才能让内容成为12,11,10,4
...全文
17255 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
hozon 2012-11-02
  • 打赏
  • 举报
回复
select * from upfiles where find_in_set(id,(SELECT picture FROM msg where id=77));
这种方式可以解决这问题。
罗曼提克 2012-07-03
  • 打赏
  • 举报
回复
select * from upfiles where id in({'12,11,10,4'});我碰到过类似的问题,格式可能有点问题,我遇到的是SELECT * FROM books WHERE id in ({boIDs});我给的不一定对,你可以试试。
  • 打赏
  • 举报
回复
前后加“,”再instr
如:
todept=12,11,10,4';
select * from table1 where instr(concat(",",todept,","),concat(",",id,","))>0;
xti9er 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chaiming 的回复:]

select *... where id IN(12,11,10,4)我想要成这样,但出现的是select *... where id IN(‘12,11,10,4’)出现的结果只人一条ID=12的
[/Quote]

试试这句
select *... where id IN ('12,11,10,4') group by id
yongshenmehao 2010-03-16
  • 打赏
  • 举报
回复
期待答案
langziyangyang 2010-02-18
  • 打赏
  • 举报
回复
郁闷啊.竟然没有人能给出答案...............
zylovegxs 2010-02-05
  • 打赏
  • 举报
回复
select * from t_car where instr("12,11,10,4",car_id)>0
aduderek 2009-02-08
  • 打赏
  • 举报
回复
最后怎么解决啊?
fcoolx 2008-07-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 Chaiming 的帖子:]
mysql  select *... where id  in (select 字符串 from ... )问题?其中字符串的内容是'12,11,10,4';如何才能让内容成为12,11,10,4
[/Quote]

你就这样写,就没问题啊,只要“字符串” 是一个字段就可以
chb89888404 2008-07-01
  • 打赏
  • 举报
回复
select * from tables where id in(select id from tables1 where 条件='')
jenie 2008-06-20
  • 打赏
  • 举报
回复
这个行
[Quote=引用 15 楼 wwwwb 的回复:]
select * from ttu
where instr((select id1 from tth where id=1),id)>0
测试通过
[/Quote]
懒得去死 2008-06-13
  • 打赏
  • 举报
回复
Write a function to split it into single number.This is very simple.
wwwwb 2008-06-13
  • 打赏
  • 举报
回复
select * from ttu
where instr((select id1 from tth where id=1),id)>0
测试通过
wwwwb 2008-06-13
  • 打赏
  • 举报
回复
用这个语句是完全可以的
select instr((select picture from upfiles where id=77),id) from tt
reality 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Chaiming 的回复:]
select * from upfiles where id in( SELECT picture FROM msg where id=77 );
SELECT picture FROM msg where id=77 结果为:'12,11,10,4'
select * from upfiles where id in( SELECT picture FROM msg where id=77 )结果为:12
[/Quote]
如果是要把 '12,11,10,4' 转换成能让in用的4个值,我没有想出什么好方法。。。。
1 处理字符串 分别把12 11 10 4 赋值给不同的整形数
2 使用预处理重新生成 select ...in... 这个句子
Chaiming 2008-06-12
  • 打赏
  • 举报
回复
mssql 中有这个功能,mysql'12,11,10,4' 去掉''就可以
JustSoSoAtCn 2008-06-12
  • 打赏
  • 举报
回复
我觉得,in 是在同一行的字符之间的。
SELECT picture FROM msg where id=77 结果为:'12,11,10,4' 是一个结果集,其实是4行,因此每次只能取得第一行的值。
不知道是不是这个原因
Chaiming 2008-06-12
  • 打赏
  • 举报
回复
结果为1
WWWWA 2008-06-12
  • 打赏
  • 举报
回复
没有记录无法测试,
select instr((select picture from upfiles where id=77),'12')
测试没有
Chaiming 2008-06-12
  • 打赏
  • 举报
回复
select * from upfiles where id in( SELECT picture FROM msg where id=77 )
我想要的结果是:4条记录
12 及其内容
11 及其内容
10 及其内容
4 及其内容
加载更多回复(7)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧