[英]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.