2010-01-29 31 views
5

şöyle anda bir veritabanı biçimlendirilmiş olması:MySQL grup

id (benzersiz kimliği)
url: http://domain.com/page.html

Url'ler aynı etki alanından ikisi de ve farklı alanlardan. Verilerin son kullanıcıya gösterilmesi sırasında sınır gibi şeyler kullanabilmem için, bir sorgunun da yapılması gerekir.

Veri

1, http://domain.com/about.html 
2, http://domain.com/index.html 
3, http://anotherdomain.com/index.html 
4, http://anotherdomain.com/contact.html 

Beklenen Çıktı
(Ben sadece (ilk hangi hiç veri sıralanır ediliyor sipariş olmanın ilk url dönmek istiyorum, bu örnek olma "id ASC ") bir grup bir kök etki alanını paylaşan url'lerin oluşur her grubun.)

1, http://domain.com/about.html 
3, http://anotherdomain.com/index.html 
+0

Hoşgeldin katılırken Bu çalışması gerekir ancak sorunlarla karşılaşabilirsiniz StackOverflow, @thisisrobv için. – Sampson

+0

Url alanında düzenli bir 'order', bunları kümelere ayırmaz mıydı? – Sampson

+0

Üzgünüz, yapmaya çalıştığım şeyi daha iyi açıklamak için veri ekledim ve beklenen çıktı. – thisisrobv

cevap

2

tablolar

 
SELECT REPLACE(REPLACE(SUBSTRING_INDEX(LOWER(table.url), '/', 3), 'www.', ''), 'http://', '') AS domain 
FROM table 
GROUP BY domain 
+0

Harika çalıştı, teşekkürler! – thisisrobv

0

ORDER BY url demek istemediyseniz, GROUP BY, substring() gibi işlevler üzerinde de çalışır.

2

Bu sizin için çalışması gerekir:

SELECT T2.id, url FROM (
    SELECT MIN(id) AS id FROM Table1 
    GROUP BY SUBSTRING_INDEX(url, '/', 3) 
) AS T1 
JOIN Table1 AS T2 
ON T1.id = T2.id 

test verileri için bu alın:

1, 'http://domain.com/about.html' 
3, 'http://anotherdomain.com/index.html'