基于嵌套 SELECT 在 SQLite LIKE 子句中使用多个搜索条件

Using multiple search criteria in SQLite LIKE clause based on a nested SELECT

我在 SQLite 的“SOURCE”table 中有一个完整路径列表,在 SPECIFICFILES table 中有一个特定文件名列表(这显然是路径的一部分)。

我想根据文件名在 SOURCE table 中查找文件。我正在尝试使用“LIKE”来匹配部分路径,但下面的搜索 returns nothing:

select * from SOURCE WHERE FullPath like (select char(39)||'%'||"SPECIFICFILES"."Filename"||'%'||char(39) FROM SPECIFICFILES);

(Char(39) 是 ASCII 格式的引号)。

此查询returns 无。这在 SQLite 中是否可行,或者我是否需要使用 C# 依次触发每个查询?

添加一些示例数据:

Table SOURCE:
FullPath
C:\My Directory\MyFile.txt

Table SPECIFICFILES:
Filename
MyFile.txt

您可以通过加入表格来做到这一点:

SELECT s.*, f.* 
FROM SOURCE s INNER JOIN SPECIFICFILES f
ON s.FullPath LIKE '%\' || f.Filename || '%';

我不确定你为什么在代码中使用 CHAR(39)
它是路径的一部分吗?
此外,如果文件名位于 FullPath 的末尾,没有任何尾随 \,则无需在末尾连接通配符 %

SELECT s.*, f.* 
FROM SOURCE s INNER JOIN SPECIFICFILES f
ON s.FullPath LIKE '%\' || f.Filename; 

参见demo