basename返回路径的文件名。
有没有办法在MySQL查询的SELECT
语句中执行此操作?这样做会很好,所以我可以直接应用ORDER BY
。
答案 0 :(得分:8)
您可以使用SUBSTRING_INDEX
函数获取特定分隔符后面的最后一个元素,在本例中为斜杠。这也可以与反斜杠一起使用,在这种情况下只需使用"\\"
。
SELECT
Path,
SUBSTRING_INDEX(Path, '/', -1) AS FileName
FROM
files
示例结果行:
路径= downloads / apps / file1.exe
FileName = file1.exe
答案 1 :(得分: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