SQLite:确定字符串的任何部分是否包含select查询返回的任何一个(多个)字符串

SQLite:确定字符串的任何部分是否包含select查询返回的任何一个(多个)字符串,sql,string,sqlite,full-text-search,sql-like,Sql,String,Sqlite,Full Text Search,Sql Like,我很难弄清楚如何要求SQLite返回“column”包含select语句结果中的文本的表中的所有条目 我希望它能像这样工作,如果这有意义的话: select * from table1` where ("%" || (column) || "%") like in ("%" || (select different_column from table2) || "%")` 任何帮助都将不胜感激。如果有人需要更多信息,请告诉我 编辑:很抱歉,我已经对格式进行了编辑,使其更具可读性,并在下面添加了

我很难弄清楚如何要求SQLite返回“column”包含select语句结果中的文本的表中的所有条目

我希望它能像这样工作,如果这有意义的话:

select * from table1`
where ("%" || (column) || "%") like in
("%" || (select different_column from table2) || "%")`
任何帮助都将不胜感激。如果有人需要更多信息,请告诉我

编辑:很抱歉,我已经对格式进行了编辑,使其更具可读性,并在下面添加了更多细节。我还删除了我可笑的无法阅读的评论,而只是编辑了这个问题

表1(警报)包含一个名为“lookup_info”的列,该列存储一个字符串。字符串通常如下所示:

--- 
:account_description: Administrator 
:alertable_class: Computer 
:alertable_name: exampledotnet 
:network_account_type: 
:wmi:
:user: exampledomain\administrator 
表2(设备)包含一个名为“name”的列,该列存储一个字符串。字符串通常如下所示:

so-ws-rm101
我想做的是返回表1(警报)中的所有条目,其中表1的“lookup_info”列不包含表2“name”列下存储在表2(devices)中的计算机名

基本上,有些警报会引用不再存在的计算机名称。我想要那些提醒

多谢各位

编辑:我创建了一个名为alerts_fts的fts3表,其中包含alerts表中所有条目的lookup_info列。这次我尝试使用全文搜索再次搜索。这是我正在使用的查询:

select *
  from alerts_fts 
  where alerts_fts.lookup_info match ( select group_concat(name, " OR ") 
                         from Devices
                         group by "x")
这将使查询看起来像:

select *
  from alerts_fts 
  where alerts_fts.lookup_info match (cw-ws-example OR so-p2-132-example OR 
                         ... OR so-p4-lastexample)
                         group by "x")

当然,这仍然不起作用。查询不返回任何内容。我做错了什么?

我认为您需要通过加入来实现这一点:

select t1.**
from table1 t1 join
     table2 t2
     on t1.column like '%'||t2.column||'%'
如果可能存在多个匹配项,则需要添加
不同的

select distinct t1.*
. . .
也许这就是你需要的:

select t1.**
from table1 t1 join
     table2 t2
     on t1.column like '%'||t2.columnA||'%' or
        t1.column like '%'||t2.columnB||'%' or 
        t1.column like '%'||t2.columnC||'%' or 
        . . .
根据您的编辑,我认为您需要左外连接,然后检查是否不匹配:

select table1.*
from table1 left outer join
     table2
     on t1.column like '%'||t2.column||'%'
where t2.column is null

您不能将Like与In一起使用,但可以执行类似的操作,前提是要将任一列重新匹配:

Select Distinct table1.* 
From table1 
  Join table2 On 
    column1 like '%'||different_column||'%' 
    Or different_column like '%'||column1||'%'

请修改您的问题,以包含样本数据和样本结果。感谢您在@GordonLinoff花费时间。我对我的问题进行了编辑,以提高其清晰度。谢谢@sgedes的回复。不幸的是,这并没有返回所需的信息。我已经编辑了我的问题并添加了更多信息。不幸的是,这似乎仍然不起作用。谢谢你的坚持。这个问题开始困扰我了。我再次编辑了我的问题,只是添加了一行以“基本上”开头的内容,再次感谢你的帮助。你好,戈登和@sgeddes。我再一次编辑了我的文章,包括我现在正在研究的方法。任何帮助都将不胜感激。