Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL中是否有basename()等价物?_Php_Mysql_Path - Fatal编程技术网

Php MySQL中是否有basename()等价物?

Php MySQL中是否有basename()等价物?,php,mysql,path,Php,Mysql,Path,在PHP中,返回路径的文件名 在MySQL查询的SELECT语句中是否有这样做的方法?有了它我会很高兴,这样我就可以直接对它应用ORDER BY。您可以使用该函数获取特定分隔符后的最后一个元素,在本例中是斜杠。这也可以与反斜杠一起使用,在这种情况下只需使用“\\” SELECT Path, SUBSTRING_INDEX(Path, '/', -1) AS FileName FROM files 示例结果行: Path=downloads/apps/file1.exe

在PHP中,返回路径的文件名

在MySQL查询的
SELECT
语句中是否有这样做的方法?有了它我会很高兴,这样我就可以直接对它应用
ORDER BY

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

SELECT
    Path,
    SUBSTRING_INDEX(Path, '/', -1) AS FileName
FROM
    files
示例结果行:

Path=downloads/apps/file1.exe
FileName=file1.exe


使用上面的答案,可以将其转换为mysql函数:

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