MySQL中最右边出现的字符串匹配

Tim*_*tin 9 mysql string

我想从MySQL中包含文件名的字段中提取文件扩展名.这意味着我需要找到最终的'.' 该字段中的字符,然后提取所有内容.以下代码示例部分有效:

SELECT LCASE(RIGHT(filename, LENGTH(filename) - LOCATE('.', filename)))
  FROM mytable;
Run Code Online (Sandbox Code Playgroud)

除了它在文件名包含多个'.'的情况下,它会提取太多.在大多数编程语言中,我希望找到一个能让我最合适的函数,但是我找不到MySQL的任何这样的东西,我也找不到那些遇到同样问题并找到解决方法的人的讨论.

Mar*_*tin 17

substring_index函数 - 它完全符合您的要求:

SELECT substring_index(filename, '.', -1) FROM mytable
Run Code Online (Sandbox Code Playgroud)