這裏是一個辦法做到這一點假設,你可能有http://
或https://
或只是www
的想法是先用一個不同的字符替換//
說||
,然後使用substring_index
解析字符串,直到第一次出現/
,最後用//
這裏更換||
是一些例子
mysql> select replace(substring_index(replace('http://facebook.com/hello','//','||'),'/',1),'||','//') as url;
+---------------------+
| url |
+---------------------+
| http://facebook.com |
+---------------------+
mysql> select replace(substring_index(replace('www.facebook.com/hello','//','||'),'/',1),'||','//') as url;
+------------------+
| url |
+------------------+
| www.facebook.com |
+------------------+
mysql> select replace(substring_index(replace('http://www.facebook.com/hello/a/b/c','//','||'),'/',1),'||','//') as url;
+-------------------------+
| url |
+-------------------------+
| http://www.facebook.com |
+-------------------------+
mysql> select replace(substring_index(replace('http://facebook.com/hello/a/b/c','//','||'),'/',1),'||','//') as url;
+---------------------+
| url |
+---------------------+
| http://facebook.com |
+---------------------+
,如果前面有一個http://它將包含它也是正確的? – YelizavetaYR 2014-11-20 18:09:30
是的,它會跳過它並尋找它後面的第一個'/'。 – 2014-11-20 19:15:09
對不起,我會用列名取代'abc://bott.com/xxxx'? – YelizavetaYR 2014-11-20 20:34:16