首页新闻找找看学习计划

数据库用in过滤时的数据格式问题。

0
悬赏园豆:10 [已解决问题] 解决于 2016-07-13 17:40
select ordid from yb_scsyb41 where serialnumber='8820160125160811' 
查出来的数据是 '8820160125161117','8820160125162845'
然后我用
select * from pati_out_order where ordid in (select ordid from yb_scsyb41 where serialnumber='8820160125160811')
没有数据
直接用查出来的数据
select * from pati_out_order where ordid in ( '8820160125161117','8820160125162845' )
是有数据的
很奇怪
用in的时候 查询结果的格式会改变吗
SQL
周家飞少的主页 周家飞少 | 初学一级 | 园豆:193
提问于:2016-07-13 15:21
< >
分享
最佳答案
0

如果你第一个查询查出来的是两行数据,那么使用in是没有问题的

如果是一行,也就是说结果张这样“'8820160125161117','8820160125162845'”,那就不能使用in

收获园豆:10
刘宏玺 | 专家六级 |园豆:14004 | 2016-07-13 15:51

那师兄遇到这种是一行的数据怎么办啊,当时填报的时候是字符串数组的形式填报的。

我试过字符串处理,但是没能成。

周家飞少 | 园豆:193 (初学一级) | 2016-07-13 17:04

@周家飞少: 最笨的办法是使用like,这种最省事,但是效率不高,而且只能在特定环境下使用

where '%' || ordid || '%' like 你的子查询

刘宏玺 | 园豆:14004 (专家六级) | 2016-07-13 17:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册