【发布时间】:2015-11-16 22:20:26
【问题描述】:
basename 在 PHP 中返回路径的文件名。
有没有办法在 MySQL 查询的 SELECT 语句中执行此操作?有这个就好了,所以我可以直接向它申请ORDER BY。
【问题讨论】:
basename 在 PHP 中返回路径的文件名。
有没有办法在 MySQL 查询的 SELECT 语句中执行此操作?有这个就好了,所以我可以直接向它申请ORDER BY。
【问题讨论】:
使用上面的答案,可以把它变成一个mysql函数:
CREATE DEFINER=`root`@`%` FUNCTION `basename`(path VARCHAR(512)) RETURNS varchar(512) CHARSET latin1
BEGIN
return SUBSTRING_INDEX(SUBSTRING_INDEX(path, '/', -1), '\\', -1);
END
【讨论】:
您可以使用SUBSTRING_INDEX 函数获取特定分隔符之后的最后一个元素,在本例中为斜杠。这也可以与反斜杠一起使用,在这种情况下只需使用"\\"。
SELECT
Path,
SUBSTRING_INDEX(Path, '/', -1) AS FileName
FROM
files
示例结果行:
路径 = 下载/应用程序/file1.exe
文件名 = file1.exe
【讨论】: