在sqlite中匹配逗号分隔字符串的查询?

时间:2014-05-23 05:49:35

标签: java android sqlite

哪个更好的方法从sqlite中的逗号分隔字符串中找到特定的数字?

我的数据表

------------------------------------------------------------------------- 
|id                 |   name                 |  relations(This is String)|
-------------------------------------------------------------------------
|1                  |   ABC                  |  1,2,3,4,5                |
-------------------------------------------------------------------------
|2                  |   XYZ                  |  14,3,4,5                  |  
-------------------------------------------------------------------------

我的目标是找到哪个关系包含1的行,并从字符串中删除此关系 但是当我使用像查询时,它返回我的两行和其他我在java中做的事情

我想找到具有完全匹配的确切行我知道可以使用regexp完成我不知道如何

1 个答案:

答案 0 :(得分:0)

你无法在android中搜索sqlite数据库中的正则表达式。见how to search sqlite database using regular expression in android?

但是你可以在返回的字符串中搜索正则表达式:

 String RESULT_FROM_DB = "1111,1,3,234,1,2,4";
 Pattern p = Pattern.compile("\\b1\\b");
 Matcher m = p.matcher(RESULT_FROM_DB);
 if(m.find()){
     //Do your stuff here. 
     System.out.println(m.start());
     System.out.println(m.end());
 }

您应该将用于编译的正则表达式中的1替换为您需要的数字(如您所说的动态值。)