繁体   English   中英

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

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

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

我想根据文件名在 SOURCE 表中查找文件。 我正在尝试使用“LIKE”来匹配路径的一部分,但下面的搜索没有返回任何内容:

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

(Char(39) 是 ASCII 中的引号)。

此查询不返回任何内容。 请问这在 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; 

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM