SQLite:确定字符串的任何部分是否包含select查询返回的任何一个(多个)字符串
我很难弄清楚如何要求SQLite返回“column”包含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) || "%")` 任何帮助都将不胜感激。如果有人需要更多信息,请告诉我 编辑:很抱歉,我已经对格式进行了编辑,使其更具可读性,并在下面添加了
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。我再一次编辑了我的文章,包括我现在正在研究的方法。任何帮助都将不胜感激。