首页 > 解决方案 > 从 mysql 表中选择最接近的匹配项

问题描述

我有一个服装尺码数据库,用户输入他们的尺寸并返回一个匹配项,如果没有匹配项,它会返回一个与用户详细信息最接近的匹配项的列表。

我想做的是,如果没有完美匹配,请显示最接近他们测量值的匹配。

这是我获取匹配项的查询。

 SELECT * FROM sizing where bust_cm like '$bust%' AND waist_cm like '$waist%' AND hips_cm like '$hips%'

然而,最好的匹配可能是两个正确的大小,但第三个只有一个或两个数字,所以我试图找到最好的方法来计算哪些结果最匹配。

标签: mysql

解决方案


你表中的测量值真的是字符串吗?

如果它们是数值,您可能希望通过查找数据库值和输入之间差异最小的行来查看。

SELECT * 
FROM sizing
ORDER BY (ABS(bust_cm - $bust) + ABS(waist_cm - $waist) + ABS(hips_cm - $hips)) ASC

推荐阅读