这看起来很奇怪,但我找不到一个简单快捷的方法来解决我的任务:
我有许多不同绝对路径的行,例如:
/application/themes/openbank/images/prettypto/light\u square/default\u缩略图.gif
/应用程序/themes/openbank/images/default_thumbnail.png
/应用程序/themes/openbank/images/prettypto/light_square/a_s.pdf
我想把他们分开
父路径(“例如/application/themes/openbank/images/prettypto/light\u square/”)
文件名(“例如,default_thumbnail.gif”)
注意:文件名的长度和分隔符的数目是可变的。

SUBSTRING_INDEX('/application/themes/openbank/images/prettyPhoto/light_square/default_thumbnail.gif', '/', -1)

我正确地得到了文件名,
但我找不到办法找回左边的部分。
我试过左()、右()和all other mysql's string function,但没有成功
利努夏蒂科

最佳答案

另一种方法是左、子字符串索引和字符长度的组合:
我的解决方案采用字符串的左边部分,长度=长度(绝对路径)-长度(文件部分)。

SET @content = '/application/themes/openbank/images/prettyPhoto/light_square/default_thumbnail.gif';
SELECT
    LEFT(
       @content,
       CHAR_LENGTH(@content) - CHAR_LENGTH(SUBSTRING_INDEX(@content, '/', -1))
    );

请参阅this fiddle中的前三个答案。
我相信还有其他方法可以达到预期的效果。

10-08 07:17