2010-08-17 362 views
71

我该怎么做?SQLite字符串包含其他字符串查询

例如,如果我的专栏是“猫,狗,鸟”,我想获得任何行,其中列包含猫?

+3

用一组样本数据编辑您的问题。很难确定你要求的是什么。 – 2010-08-17 02:35:37

回答

140

使用类似:

SELECT * 
    FROM TABLE 
WHERE column LIKE '%cats%' --case-insensitive 
+3

请记住,这不适用于您要搜索的字符串是变量或包含特殊字符(例如'%')的地方。 – Sam 2013-05-24 01:32:44

+4

如果“cats”是来自其他表的字段,则可以使用“%”|| table2.field ||'%'作为相似条件 – 2016-05-12 10:14:01

53

虽然LIKE是适合这种情况下,一个更通用的解决方案是使用instr,不需要在搜索字符串中的字符转义。注意:instr is available starting from Sqlite 3.7.15

SELECT * 
    FROM TABLE 
WHERE instr(column, 'cats') > 0; 

另外,请记住,LIKE是区分大小写,而instr是区分敏感

+7

这意味着您的minSdkVersion应该是21(5.0-Lollipop) – 2016-11-18 08:30:14