mysql substring_index反向

时间:2012-05-19 05:03:55

标签: 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                                        |
+--------------------------------------------+

可以这样做吗?

3 个答案:

答案 0 :(得分:4)

    select substr('www.java2s.sth.com', 1, (length('www.java2s.sth.com')- 
    length(SUBSTRING_INDEX(('www.java2s.sth.com'), '.', -1))-1));`

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

使用此

SELECT SUBSTRING_INDEX('www.java2s.com', '.', 2)

更通用

SELECT SUBSTRING_INDEX('www.java2s.com', '.', ( LENGTH('www.java2s.com') - LENGTH(REPLACE('www.java2s.com', '.', '')))  )