我可以在SQLite中执行“反向”LIKE操作吗?

问题描述:

所以我想搜索使用单词“根植”或“UNROOT”从我的数据库中的单词“ROOT”。我可以在SQLite中执行“反向”LIKE操作吗?

我希望我不是被误解为想要执行该正常运行一样

SELECT Word FROM tblWordList WHERE Keywords LIKE '%ROOT%' 

我要反其道而行之,所以如果我有“OOT”或“ROO”数据库当我输入“ROOTED”时,它也会被搜索到。

我实际上在列关键字中有单词ROO和OOT。但也有其他一些词,如SAM,MOON,RIP。现在我想在列Word中搜索Value,或者只是说出ROOTED的子串出现的行的ID。在这种情况下,我应该得到ROO和OOT行的ID。

android + sqlite的代码会很棒,但即使是操作的命令也会非常有帮助。

+3

这不是“相反”,你可以更清楚吗? – kenfire

+0

该列是否只包含*'ROO' /'OOT'? – Kayaman

+0

您应该调查SQL运算符LIKE是如何工作的。 –

SELECT Word FROM tblWordList WHERE Keywords LIKE '%ROO%' OR Keywords LIKE '%OOT%' 

您将需要拿出自己的算法,以确定哪些特别是你要使用的搜索词(ROOTED)的子集。

+0

我实际上在列关键字中有单词ROO和OOT。但也有其他的词,如SAM,MOON,RIP。现在我想在列Word中搜索Value,或者只是说出ROOTED的子串出现的行的ID。在这种情况下,我应该得到ROO和OOT行的ID。 –

+0

@McDuran:正如我写的,您需要提出自己的算法来确定要使用的搜索项('ROOTED')的特定子集。没有SQL操作符为您正在寻找。 – CommonsWare

当你想匹配的值OOTROOTED,将要与这些特定值应该是这样的:

'ROOTED' LIKE '%OOT%' 

因此,如果第一个是一个恒定值,而第二个来自于数据库,只是这样写:

SELECT ... WHERE 'ROOTED' LIKE '%' || Keywords || '%'; 
+0

您可以请详细说明您的答案: 我试图使用此命令: 从tbl信息的选择ID WHERE'tommen'LIKE'%'||关键词|| '%'; 即使在关键字中存在3行的子字符串'tommen'存在时(tommening,tommens,stommeny),它也返回了0个结果。 我想要实现的是甚至包含'tommen'的子串的行,比如'tom'或'men'或'mme'的行在我执行查询时会出现。 –

+0

这不是你问的问题。请注意,空字符串也是一个子字符串,因此您的描述将匹配所有行。 –

+0

对不起,如果我不清楚。我真的很难用英语解释。我意识到你对空串的评论是真实的。但是,仍然有一种方法可以执行此操作,只是在匹配只是空字符串的情况下过滤结果? –