mysql - MySQL 中多个值的最佳匹配

标签 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

最佳答案

您需要一个距离度量。但如果你有一个,那么你可以只使用 order bylimit。因此,如果您使用欧几里得度量:

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

注意:按欧几里德度量排序不需要平方根。

关于mysql - MySQL 中多个值的最佳匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41039752/

相关文章:

MySQL使用多列选择重复记录

mysql - SQL查询: How to Get tweet from following?

php - 由 MySQL 填充的下拉菜单上的子类别

mysql - 如何在连接 3 个表时进行搜索但排除其中一个表的结果?

mysql - TSQL语法错误: missing 'if'

Mysql 2 SUM 和不同的分组依据

mysql - 按 2 个值排序,使用 3 个表

php - 查询具有 md5 版本 id 的字段

mysql - INSERT INTO values (...) ON DUPLICATE KEY UPDATE 具有多个值

MySql group by with where 条件不起作用