我可以在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的代码会很棒,但即使是操作的命令也会非常有帮助。
SELECT Word FROM tblWordList WHERE Keywords LIKE '%ROO%' OR Keywords LIKE '%OOT%'
您将需要拿出自己的算法,以确定哪些特别是你要使用的搜索词(ROOTED
)的子集。
我实际上在列关键字中有单词ROO和OOT。但也有其他的词,如SAM,MOON,RIP。现在我想在列Word中搜索Value,或者只是说出ROOTED的子串出现的行的ID。在这种情况下,我应该得到ROO和OOT行的ID。 –
@McDuran:正如我写的,您需要提出自己的算法来确定要使用的搜索项('ROOTED')的特定子集。没有SQL操作符为您正在寻找。 – CommonsWare
当你想匹配的值OOT
和ROOTED
,将要与这些特定值应该是这样的:
'ROOTED' LIKE '%OOT%'
因此,如果第一个是一个恒定值,而第二个来自于数据库,只是这样写:
SELECT ... WHERE 'ROOTED' LIKE '%' || Keywords || '%';
您可以请详细说明您的答案: 我试图使用此命令: 从tbl信息的选择ID WHERE'tommen'LIKE'%'||关键词|| '%'; 即使在关键字中存在3行的子字符串'tommen'存在时(tommening,tommens,stommeny),它也返回了0个结果。 我想要实现的是甚至包含'tommen'的子串的行,比如'tom'或'men'或'mme'的行在我执行查询时会出现。 –
这不是你问的问题。请注意,空字符串也是一个子字符串,因此您的描述将匹配所有行。 –
对不起,如果我不清楚。我真的很难用英语解释。我意识到你对空串的评论是真实的。但是,仍然有一种方法可以执行此操作,只是在匹配只是空字符串的情况下过滤结果? –
这不是“相反”,你可以更清楚吗? – kenfire
该列是否只包含*'ROO' /'OOT'? – Kayaman
您应该调查SQL运算符LIKE是如何工作的。 –