从Sqllite中获取数据,该数据在列中具有逗号分隔值

时间:2018-04-20 11:46:59

标签: android database sqlite

要求很简单我需要让行完全具有' 4'在它,但问题是在Sqllite中没有FIND_IN_SET函数。我试图使用LIKE查询获取值:

我尝试过的代码片段

select * from tbl_opportunity where (',' || opp_Business_id || ',') LIKE ',4,%'

但它只返回2行,如果行包含' 24,则有时也会返回更多行。或任何包含此类数据的数字' 4,'

Table Structure of tbl_opportunity

1 个答案:

答案 0 :(得分:2)

Sqlite支持正则表达式WHERE opp_Business_id REGEXP "\b" || 4 || "\b"; - 否则您需要匹配所有可能的组合。你的模式不匹配的情况应该是显而易见的,当它失败2/3的示例记录时; WHERE (opp_Business_id == '4' OR opp_Business_id LIKE '%,4' OR opp_Business_id LIKE '4,%' OR opp_Business_id LIKE '%,4,%');将与LIKE进行四次比较,而REGEXP仅与git submodule update --init --recursive 进行四次比较。