Bir sınıra ulaşıldığında değil eğer ben farklı satır ve sonra olmayan farklı satırları seçmek için tek bir MySQL sorgusu kullanabilir miyim?

3 Cevap php

Ben düzgün bu açıklayan kulüpler, MySQL bilgim oldukça sınırlıdır umuyoruz.

Diyelim ki shape adında bir alan var satırlık bir tablo var diyelim.

Ben bir tablodan satır bir demet seçmek istiyorum, ama önce tek shape alan değerleri ile tüm satırları dönecekti. Ben satır belirli bir sayıdan daha az varsa, o zaman ben olmayan benzersiz şekli satır ile kalan sonuç satırlarını doldurmak istiyorum, hadi 7 diyelim. Ben kelime can iyi yolu onların "teklik tarafından sipariş ve daha sonra diğer bazı değeri" konum olmasıdır.

So, I don't want: square, square, circle, circle, rectangle, square, triangle

I'd like to have: square, circle, rectangle, triangle, square, square, circle

Bu tek bir SQL sorgusu kullanarak yapmak mümkün mü? Herhangi bir fark yaparsa ben, PHP ile MySQL kullanıyorum.

Teşekkürler!

3 Cevap

(Siz de almak istediğiniz saymak maksimum satır sınırı olan) benzersiz olmayan bir sorgu ile bir birlik içinde, ilk farklı değerler kombinasyonu satır sınırlı sayıda seçebilirsiniz.

yani. seçeneğini alan1, alan2, ... AS toplam SINIRI MAX_ROW_COUNT (ayrı alan1, alan2, ... dan ... UNION select alan1, alan2, ... dan ... LİMİT MAX_ROW_COUNT seçin)

Bunu kullanarak bunu yapmak mümkün olabilecek bir UNION (yani iki farklı sorgular kullanmak, ama sadece sonuçlarını birleştirmek)

2 farklı (ama aynı select) sorguları birleştirmek için UNION ALL kullanabilirsiniz. Ama SINIR UNION üzerinde çalıştığını sanmıyorum, o zaman olurdu:

SELECT unique query here, with limit 0,7 UNION ALL SELECT other query here, with limit 0.7

Ikisini aynı SELECT değerlere sahip olsa da, o zaman sadece 7 sonra tüm satırları kesebilirsiniz, 1 sonucu içine birleştirilir.

Ama belki sen zaten ben bilmiyorum ki, bütün BİRLİĞİ bir SINIRI yapabilirsiniz.