【发布时间】:2015-11-18 17:26:28
【问题描述】:
我正在尝试使用此查询仅从完整路径中搜索目录名。
SELECT
`file_name` FROM `tbl_files` where SUBSTR(`file_path`,
LOCATE('/',`file_path`)+1,
(CHAR_LENGTH(`file_path`) - LOCATE('/',REVERSE(`file_path`)) - LOCATE('/',`file_path`))) =
(Select `source_path` from `tbl_transcode_folder` where `trancode_folder_id` = 1 )
但它什么也没给我。当我将(Select source_path from tbl_transcode_folder where trancode_folder_id = 1 ) 替换为它的结果mnt/hd/1 时,就像下面的查询一样,这是我想要的响应,但我不想那样做。
SELECT
`file_name` FROM `tbl_files` where SUBSTR(`file_path`,
LOCATE('/',`file_path`)+1,
(CHAR_LENGTH(`file_path`) - LOCATE('/',REVERSE(`file_path`)) - LOCATE('/',`file_path`))) = `mnt/hd/1`
【问题讨论】:
-
这两个表的共同字段是什么???
tbl_transcode_folder where trancode_folder_id = 1里只有一行??? -
它们之间没有公共字段,另一个表存储完整路径而另一个表存储目录名,即使没有公共字段也可以吗? TIA
-
你怎么可能将文件的完整路径和目录名存储在两个表中,而它们表中没有字段????你怎么知道哪个目录有什么路径???
-
tbl_transcode_folder与tbl_files的用法有很大不同,我只想根据tbl_transcode_folder中存储的目录名扫描tbl_files中的所有目录名,该表tbl_files仅存储完整路径。