mysql substring_index反向

use*_*196 5 mysql string

在MYSQL中,给定一个带点的字符串,我想选择最后一个点之前的所有内容。例如:输入

www.java2s.com

输出:

www.java2s

substring_index似乎相反:

mysql> SELECT SUBSTRING_INDEX('www.java2s.com','。',-1);
+ -------------------------------------------- +
| SUBSTRING_INDEX('www.java2s.com','。',-1)|
+ -------------------------------------------- +
| com |
+ -------------------------------------------- +

能做到吗?

Afs*_*ami 5

    select substr('www.java2s.sth.com', 1, (length('www.java2s.sth.com')- 
    length(SUBSTRING_INDEX(('www.java2s.sth.com'), '.', -1))-1));`
Run Code Online (Sandbox Code Playgroud)


dgp*_*pro 5

如果您正在寻找更好的解决方案,这里是:

SET @domain = "www.java2s.com";
SELECT SUBSTRING(@domain, 1, LENGTH(@domain)-LOCATE('.', REVERSE(@domain)));
Run Code Online (Sandbox Code Playgroud)