【问题标题】:Is there basename() equivalent in MySQL?MySQL中是否有等效的basename()?
【发布时间】:2015-11-16 22:20:26
【问题描述】:

basename 在 PHP 中返回路径的文件名。

有没有办法在 MySQL 查询的 SELECT 语句中执行此操作?有这个就好了,所以我可以直接向它申请ORDER BY

【问题讨论】:

    标签: php mysql path


    【解决方案1】:

    使用上面的答案,可以把它变成一个mysql函数:

    CREATE DEFINER=`root`@`%` FUNCTION `basename`(path VARCHAR(512)) RETURNS varchar(512) CHARSET latin1 
    BEGIN
        return SUBSTRING_INDEX(SUBSTRING_INDEX(path, '/', -1), '\\', -1);
    END
    

    【讨论】:

      【解决方案2】:

      您可以使用SUBSTRING_INDEX 函数获取特定分隔符之后的最后一个元素,在本例中为斜杠。这也可以与反斜杠一起使用,在这种情况下只需使用"\\"

      SELECT
          Path,
          SUBSTRING_INDEX(Path, '/', -1) AS FileName
      FROM
          files
      

      示例结果行:

      路径 = 下载/应用程序/file1.exe
      文件名 = file1.exe

      【讨论】:

        猜你喜欢
        • 2022-01-09
        • 1970-01-01
        • 2016-05-12
        • 2010-12-14
        • 2010-09-06
        • 2011-01-14
        • 2011-03-20
        • 1970-01-01
        • 2018-05-03
        相关资源
        最近更新 更多