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表中的列
@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
@Alex Mathew:Thx,已更新。 'x'是派生表/內聯視圖的表別名。它的使用方式與't'別名在派生表/內聯視圖中一樣... – 2010-08-20 15:28:52
@OMG:我的表名是url2,用於保存url的coloum名稱是url,可以重寫SQL嗎? – 2010-08-23 10:46:51