簡體   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