2014-10-02 94 views
1

我有一个名为orig_file的字段的mysql表,并希望从该表中获取目录结构。 orig_file字段包含目录和文件名。我现在使用一个相当复杂的查询(这是工作),我想知道是否有更好的(或更优雅的)解决方案。从带有文件名的mysql表中返回目录结构

SELECT left(orig_file,length(orig_file)+1-instr(reverse(orig_file),"/")) as 'directory' FROM tablename GROUP BY left(orig_file,length(orig_file)+1-instr(reverse(orig_file),"/")) ORDER BY orig_file ASC; 

是否有一个函数可以返回另一个字符串中最后一次出现的字符串的索引?

length(orig_file)+1-instr(reverse(orig_file),"/") 

给出结果,但相当复杂...

+0

你应该接受的答案,如果这是正确的:) – 2014-10-16 06:19:19

回答

1

试试这个

SELECT SUBSTRING('this/is/test/directory/path/filename',1,LENGTH("this/is/test/directory/path/filename") - LOCATE('/', REVERSE("this/is/test/directory/path/filename"))+1); 
+0

看到我的最新答案。 – 2014-10-02 12:47:57

+0

不知道哪种方式更好:)但在这里,我只是给你的方式替代:P – 2014-10-02 12:49:40

相关问题