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