SUBSTRING_INDEX函数可以找到字符串中的分隔符并返回sub分隔符之前或之后的字符串。 。截取文件名后缀时,可以使用该函数查找`.`分隔符,并返回最后一次出现`.`之后的子字符串,即文件名后缀。
示例代码:
SELECT SUBSTRING_INDEX('example.doc', '.', -1); -- 返回“文档”
SELECT SUBSTRING_INDEX('example.docx', '.', -1); -- 返回“docx”
SELECT SUBSTRING_INDEX('example.jpg', '.', -1); -- Return 'jpg'
SUBSTRING函数可以从字符串中截取子字符串。截取文件名后缀时,可以使用该函数截取最后一个‘.’之后的所有字符,即文件名后缀。
示例代码:
SELECT SUBSTRING('example.doc', LENGTH('example.doc') - LOCATE('.', REVERSE('example.doc')) + 2); -- 返回“文档”
SELECT SUBSTRING('example.docx', LENGTH('example.docx') - LOCATE('.', REVERSE('example.docx')) + 2); -- 返回“docx”SELECT SUBSTRING('example.jpg', LENGTH('example.jpg') - LOCATE('.', REVERSE('example.jpg')) + 2); -- Return 'jpg'
REGEXP_REPLACE函数可以用来替换字符串中与正则表达式匹配的部分。截取文件名后缀时,可以使用该函数替换最后一个‘.’之后的所有字符。
示例代码:
SELECT REGEXP_REPLACE('example.doc', '(.*)\\.(.*)', '\\2'); -- 返回“文档”
SELECT REGEXP_REPLACE('example.docx', '(.*)\\.(.*)', '\\2'); -- 返回“docx”
SELECT REGEXP_REPLACE('example.jpg', '(.*)\\.(.*)', '\\2'); -- 返回 'jpg'