oracle,怎么查询一个字符串是否包含在一串以逗号分隔的字符串中
问题描述:
只用包含来查是不行的,
例如我有一串字符串是
'1,3,0bc4a2f79a3e4ac09582d9c50f779630,ffe02ba8ca724ebe98f2a5f0b56d84a0',
我希望能在我查找是否包含字符串时查找的是完全能在逗号分隔的字符串中找到对应,
例如我要找的是'1',它查找到里面有'1'返回true,
我要找的是'2',虽然长字符串里包含的有'2',但因为没有在逗号分隔的字符串中找到完全对应的,所以返回的是false
希望各位大佬能帮帮忙
答
str like “1,%” or str like",1," or str like "%,1"
答
前后加逗号,包含查询
比如说查1,写成 (,1,) 包含 (,1,2,3,)
答
数据库查询其实没有特别好的方法,模糊查询就算用 %,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;