SQLite:确定字符串的任何部分是否包含选择查询返回的任何一个(多个)字符串
我无法确定如何要求SQLite返回表中“列”包含文本的所有条目在选择语句的结果中。SQLite:确定字符串的任何部分是否包含选择查询返回的任何一个(多个)字符串
我想它的工作有点像这样,如果这使得任何意义:
select * from table1`
where ("%" || (column) || "%") like in
("%" || (select different_column from table2) || "%")`
任何帮助将非常感激。请让我知道是否有人需要更多信息。
编辑:我的道歉,我已编辑的格式更具可读性,并在下面添加了更多的细节。我也删除了我可笑的无法读取的评论,赞成编辑这个问题。
table1(alerts)包含一个名为“lookup_info”的列,该列存储一个字符串。该字符串一般如下所示:
---
:account_description: Administrator
:alertable_class: Computer
:alertable_name: exampledotnet
:network_account_type:
:wmi:
:user: exampledomain\administrator
table2(devices)包含一个名为“name”的列,该列存储一个字符串。该字符串一般是这样的:
so-ws-rm101
我想要做的是返回table1中的所有条目(警报),其中表1的“lookup_info”一栏确实不包含内某处存储在表2的计算机名(设备)在table2的“名称”列下。
基本上,有一些警报引用不再存在的计算机名称。我想要这些警报。
谢谢。
编辑:我已经通过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||'%'
如果有多个匹配的可能性,你要添加distinct
:
也许这是你需要的:
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
. . .
根据你的编辑,我想你想要一个左外连接和th en表示没有匹配的检查:
select table1.*
from table1 left outer join
table2
on t1.column like '%'||t2.column||'%'
where t2.column is null
不幸的是,这似乎还没有工作。感谢你的坚持。这个问题开始困扰着我。 – user2069730 2013-03-01 18:40:03
我再次编辑了我的问题,只是添加了一个以“基本上”开头的行,再次感谢您的帮助。 – user2069730 2013-03-01 19:41:40
嗨Gordon和@sgeddes。我再次编辑了我的文章,包括我现在正在处理的方法。任何帮助将非常感激。 – user2069730 2013-03-15 18:13:23
不能使用像配有,但你可以做这样的事情假设你想要么柱匹配回:
Select Distinct table1.*
From table1
Join table2 On
column1 like '%'||different_column||'%'
Or different_column like '%'||column1||'%'
谢谢@sgeddes您的回复。不幸的是,这并没有返回所需的信息。我编辑了我的问题并添加了更多信息。 – user2069730 2013-02-27 19:55:33
请修改您的问题以包含样本数据和样本结果。 – 2013-02-27 19:03:56
谢谢你的时间@GordonLinoff。为了提高清晰度,我编辑了我的问题。 – user2069730 2013-02-27 19:54:07