在SQLite 3.7.11
和Java
的开发环境中,尽管已阅读以下答案:
我发现SQLite IN
条款的使用不是很直截了当。
假设一个简单的表TEST
具有以下结构:
----------------------------
id PRODUCT TAG
(int) (text) (text)
----------------------------
1 Cinthol Soap, Bath, Cleaning
2 Vim Dishwash, Kitchen, Cleaning
3 Burger Food, Breakfast, Lunch, Dinner
以下查询的行为方式如下:
----------------------------------------------------------------------------
Query Result Expected
----------------------------------------------------------------------------
SELECT PRODUCT FROM TEST WHERE TAG IN('Soap') Cinthol Cinthol
SELECT PRODUCT FROM TEST WHERE TAG IN('Dinner') <EMPTY> Burger
SELECT PRODUCT FROM TEST WHERE TAG IN('Soap', 'Bath') <EMPTY> Cinthol
SELECT PRODUCT FROM TEST WHERE TAG IN('Cleaning') <EMPTY> Cinthol, Vim
所以问题是:
instr
函数)? 此外,TAG
列最终必须与Java中的标记数组绑定,从而动态构建查询。但是,上面列出的答案指出了这一点。
提前致谢!
答案 0 :(得分:1)
在子句中没有这样的工作。如果每个列都有一个TAG,你可以得到结果。你需要添加另一个表来保存你的标签。在这个表中你需要pk,外键(id deom测试)和标记,这样你就可以为每个产品提供多标签。这是一个你可以做出与众不同的解决方案。你最好先搜索数据库通知..g