Bir MySQL tablomuz var, people
. Her kayıt, bu favourite_colour
, country
ve age_group
arasında çeşitli özellikler içerir.Karşılaştırma noktalarının bir değişken kümesini temel alarak MySQL kayıtlarını alma
Yapmak istediğim, bu tablodaki kayıtları belirli bir dizi parametreyle benzerliklerine göre almaktır. Örneğin, "Kırmızı", "Amerika Birleşik Devletleri" ve "18-25" değerleri verildiğinde, en iyi sonuçlar, her üç ile eşleşen kayıtlar olacaktır. Bunlar% 100 maç olur. Bununla birlikte, iki parametrenin (% 66 eşleşme) veya herhangi bir parametrenin (% 33 eşleşmesi) herhangi bir birleşimi ile eşleşen kayıtları almak istiyorum. Ayrıca, ilave karşılaştırma noktaları tanımlamak istiyorum (örneğin, underwear_type
, marital_status
, vb.).
Bu problem için nispeten verimli bir çözüm var mı? Üç İlk İçin
Bu oldukça zekice! –
Bu gerçekten çok iyi bir fikir. Sonuçlardan birini çarparak buna da ağırlık eklemek çok kolay olurdu. –
Bu gerçekten harika bir çözüm. Birkaç not/soru: Anlatabildiğim kadarıyla SQL, WHERE maddelerinde sütun takma adlarına (örn. Match_score) izin vermiyor. Ayrıca, SUM() 'ın sorgunuzun önereceği gibi davrandığını sanmıyorum (çoklu argümanları kabul etmiyor); MySQL'in belgeleri SUM(), yalnızca GROUP BY toplama işlevidir. WHERE yan tümcesini kaldırmak ve toplama işleçleri ile toplamı değiştirmek işlevi bir çekicilik gibi çalışır. –