2013-08-20 36 views
1

首先,我不確定我想給我的問題輸入正確的標題。隨意改變它。從數據庫中的URL中選擇特定的子域

假設我在數據庫中有4個URL。

http://joomla.mywebsite.net/3968923121/2412583825325/ 
http://www.joomla.mywebsite.net.talleresbanfield.com.ar/cadastrar/index.html 
http://belowel.com.joomla.mywebsite.net/images/6058873435/1432583285194/ 
http://test.com.datacity.mywebsite.net/images/joomla.mywebsite.net/ 


如何,我只選擇這2網址

http://joomla.mywebsite.net/3968923121/2412583825325/ 
http://belowel.com.joomla.mywebsite.net/images/6058873435/1432583285194/ 

從給定用戶輸入joomla.mywebsite.net。我可以在SELECT期間使用LIKE %...%,但所有4個URL都將被選中。我只需要顯示正確使用joomla.mywebsite.net的網址,因爲它是子網域。

我正在考慮首先選擇所有的URL,分配到數組中,並做preg_match或正則表達式來做匹配,但它確實有效,因爲在選擇期間做單向查詢?

在此先感謝。

+0

也許有一百萬種方法可以做到這一點。你也可以把它們打印出來,放在瓶子裏,扔在海里,只要有足夠的東西,等一會兒,然後打電話給海洋另一邊的朋友,他們發現了前兩個人。所以真的很難回答。 – hakre

回答

1

你可以嘗試這樣的事:

SELECT url 
FROM t1 
WHERE SUBSTRING_INDEX(url,'/',3) LIKE '%joomla.mywebsite.net' 

SQLFiddle Demo

通過使用SUBSTRING_INDEX這樣,你要比較字符串的這一部分:

http://joomla.mywebsite.net 
http://www.joomla.mywebsite.net.talleresbanfield.com.ar 
http://belowel.com.joomla.mywebsite.net 
http://test.com.datacity.mywebsite.net 

基本上URL到第3個/

+0

嗨,所以我添加了另一個不正確的URL'http:// hasjid5.comjoomla.mywebsite.net/bevoq/sygxgpmh.php'這裏http://sqlfiddle.com/#!2/f8d3e/1和不正確的子域匹配在列表中。任何想法糾正這一點?謝謝你介紹我到sqlfiddle btw .. – sg552

+1

@ sg552好吧,因爲你可以這樣做:'WHERE substring_index(url,'/',3)like'%.joomla.mywebsite.net' OR substring_index(url ,'/',3)like'%/ joomla.mywebsite.net''參見http://sqlfiddle.com/#!2/f8d3e/6 – DarkAjax

+0

我沒有你的邏輯。謝謝。 – sg552