Z_last
2017-08-07 01:09
采纳率: 100%
浏览 6.5k

oracle,怎么查询一个字符串是否包含在一串以逗号分隔的字符串中

只用包含来查是不行的,
例如我有一串字符串是
'1,3,0bc4a2f79a3e4ac09582d9c50f779630,ffe02ba8ca724ebe98f2a5f0b56d84a0',
我希望能在我查找是否包含字符串时查找的是完全能在逗号分隔的字符串中找到对应,
例如我要找的是'1',它查找到里面有'1'返回true,
我要找的是'2',虽然长字符串里包含的有'2',但因为没有在逗号分隔的字符串中找到完全对应的,所以返回的是false
希望各位大佬能帮帮忙

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • sinat_38913556 2017-08-07 01:18
    已采纳

    str like “1,%” or str like",1," or str like "%,1"

    点赞 评论
  • 呓语的风 2017-08-07 01:20

    前后加逗号,包含查询
    比如说查1,写成 (,1,) 包含 (,1,2,3,)

    点赞 评论
  • Tsui丶 2017-08-07 01:30

    数据库查询其实没有特别好的方法,模糊查询就算用 %,2% or %2,% 也会出现开头或结尾带2的不合格数据,所以其实重要的是后台的数据处理。
    建议用模糊查询查到数据后,后台进行精确对比判断数据是否为真

    Boolean flag = false;
     String str ="1,2,3,4,中文"   //假设为数据库查询数据
    
     String[]  sp = str.split(",");  //将字符串根据  ,  分割成数据   得到的String数组是 [1,2,3,4,中文] 5个不包含“,”的字符串 
    
     //接下来进行数据比较
     for(int i=0;i<str.length;i++){
                if(str[i] == "2"){
                    flag =true;
                }
            }
    return falg;
    
    点赞 评论

相关推荐 更多相似问题