2010-08-20 43 views
3

我在我的數據庫中有這麼多的域名,例如查找數據根據relevency然後採取從差異域2結果

www.yahoo.com/duniya.html 
www.yahoo.com/hero.html 
www.123musiq.com/ 
www.123musiq.com/home.html 
www.123musiq.com/horo.html 
www.123musiq.com/yuva.html 
www.sensongs.com/ 
www.sensongs.com/hindi.html 
www.sensongs.com/yuva.html 
www.sensongs.com/duniya.html 
www.sensongs.pk/duniya1.html 

我需要對它們進行排序一樣,雅虎第一2,那麼下一個來自123musiq的2個,然後是來自感官的2個。 我該怎麼做?在MySQL或PHP? 我知道要獲取域名,我需要知道如何從每個域中排序2?
我使用的對陣方法

期待輸出

 
    www.yahoo.com/duniya.html 
    www.yahoo.com/hero.html 
    www.123musiq.com/ 
    www.123musiq.com/home.html 
    www.sensongs.com/ 
    www.sensongs.com/hindi.html 

我用下面的代碼
 
SELECT x.url 
    FROM (SELECT t.url, 
       CASE 
       WHEN @domain = SUBSTRING_INDEX(t.url, '/', 1) THEN @rownum := @rownum + 1 
       ELSE @rownum := 1 
       END AS rank, 
       @domain := SUBSTRING_INDEX(t.url, '/', 1) 
      FROM URL2 t 
      JOIN (SELECT @rownum := 0, @domain := '') r 
     ORDER BY SUBSTRING_INDEX(t.url, '/', 1)) X 
WHERE x.rank <= 2 AND MATCH(teet,url,html) AGAINST ('account');

它顯示錯誤
 
Query : SELECT x.url FROM (SELECT t.url,    CASE     WHEN @domain = SUBSTRING_INDEX(t.url, '/', 1) THEN @row... 
Error Code : 1054 
Unknown column 'teet' in 'where clause'

但最佳匹配的是我URL2表中的列

回答

2

的MySQL沒有按」沒有分析功能,這是你需要得到每個分組的兩個條目。其他的痛苦是「www」。複雜定位第二期......

用途:

SELECT x.url 
    FROM (SELECT t.url, 
       t.teet, 
       t.html, 
       CASE 
       WHEN @domain = SUBSTRING_INDEX(t.url, '/', 1) THEN @rownum := @rownum + 1 
       ELSE @rownum := 1 
       END AS rank, 
       @domain := SUBSTRING_INDEX(t.url, '/', 1) 
      FROM URL2 t 
      JOIN (SELECT @rownum := 0, @domain := '') r 
     ORDER BY SUBSTRING_INDEX(t.url, '/', 1)) x 
WHERE x.rank <= 2 
+0

@OMG:我們可以發現由域http://stackoverflow.com/questions/3521094/how-we-can-find-domain -name-using-mysql-and-regular-expression,這是x.domainname,x.rank,t.domainname – 2010-08-20 04:57:34

+0

@Alex Mathew:Thx,已更新。 'x'是派生表/內聯視圖的表別名。它的使用方式與't'別名在派生表/內聯視圖中一樣... – 2010-08-20 15:28:52

+0

@OMG:我的表名是url2,用於保存url的coloum名稱是url,可以重寫SQL嗎? – 2010-08-23 10:46:51