0

我的 MySQL 数据库中有一个存储文件路径的列。我试图找出一个查询,它将在给定字符串(或根目录,不给定字符串)的情况下返回文件路径中的下一个文件夹。所以说我有以下内容:

/this/is/my/folder
/this/is/another/folder
/folder/one

我的查询将返回“this”和“folder”。或者如果我给它字符串'/this/is/',它会返回'my'和'another'。这在同一个查询中可能是不可能的,所以如果我需要两个查询,我可以添加代码逻辑。

我相信我可以在 mysql 中使用正则表达式来做到这一点,但我不确定在 mysql 中是否有另一种方法可以做到这一点?

谢谢。

4

1 回答 1

2

您可以使用 MySQL 的SUBSTRING_INDEX()函数来提取您需要的部分:

SELECT DISTINCT SUBSTRING_INDEX(
         SUBSTRING_INDEX(
           Folder,
           @querystring,
           1 + CHAR_LENGTH(@querystring) - CHAR_LENGTH(
             REPLACE(@querystring, '/', '')
           )
         ),
         '/',
         -1
       )
FROM   mytable
WHERE  Folder LIKE CONCAT(@querystring, '%');

sqlfiddle上查看。

于 2012-07-03T19:22:03.237 回答