繁体   English   中英

mysql substring_index反向

[英]mysql substring_index reverse

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

www.java2s.com

输出:

www.java2s

substring_index似乎反其道而行之:

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

可以这样做吗?

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

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

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

用这个

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

更通用

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM