2016-12-08 9 views
2

MySQLの複数の値と列から最適な一致を見つけます。MySQLの複数の値に最適一致

データベース:

id star point price  
1 12  15  16 
2 9  15  16 
3 18  10  12 

検索は、あなたが距離メトリックを必要とし、この

star point price 
10 15  14 

結果

id: 2 
+0

)これまでに何を試しましたか? b)「ベストマッチ」は正確に何を意味しますか?たとえば、星の列は価格よりも重要ですか? – Sirko

+0

私は1つの値で試しただけです。しかし、私は複数の価値のための最良の一致をチェックする必要が今失われます。誰かがもっと重要であるべきかどうかは分かりません。それについて考える必要がある – user2673664

答えて

2

に閉じます。しかし、あなたがそれを持っている場合は、order bylimitを使うことができます。

select t.* 
from t 
order by pow(star - 10, 2) + pow(point - 15, 2) + pow(price - 14, 2) 
limit 1; 

注:あなたは、ユークリッドメトリックを使用するのであれば、平方根はユークリッドメトリックで注文するために必要とされていません。

+0

甘い!この数字がベストマッチよりも高い場合は、これもクローズ番号を見つけることができますか? – user2673664

+0

@ user2673664 。 。はい。あなたは類似性を求めているルールを指定しておらず、ユークリッド距離は単に値の差に基づいています。 –

関連する問題