mysql - 从 mysql 表中选择最接近的匹配项
问题描述
我有一个服装尺码数据库,用户输入他们的尺寸并返回一个匹配项,如果没有匹配项,它会返回一个与用户详细信息最接近的匹配项的列表。
我想做的是,如果没有完美匹配,请显示最接近他们测量值的匹配。
这是我获取匹配项的查询。
SELECT * FROM sizing where bust_cm like '$bust%' AND waist_cm like '$waist%' AND hips_cm like '$hips%'
然而,最好的匹配可能是两个正确的大小,但第三个只有一个或两个数字,所以我试图找到最好的方法来计算哪些结果最匹配。
解决方案
你表中的测量值真的是字符串吗?
如果它们是数值,您可能希望通过查找数据库值和输入之间差异最小的行来查看。
SELECT *
FROM sizing
ORDER BY (ABS(bust_cm - $bust) + ABS(waist_cm - $waist) + ABS(hips_cm - $hips)) ASC
推荐阅读
- node.js - 在节点中设置环境变量,特别是 GOOGLE_APPLICATION_CREDENTIALS
- php - 验证场景不工作 Yii 2
- javascript - 通过 ajax 调用从表单更新类别对象
- haskell - Haskell 刚性类型变量错误
- r - runs.test() 仅适用于偶数 n1 和 n2
- javascript - 打字稿 - 删除毫秒
- machine-learning - 对学习深度学习的初学者有什么建议吗?
- angularjs - Angular 指令包括创建“巫毒模式?”
- java - 在 DSpace 6 单元测试中包含我自己的服务
- java - java定时器,如何实现timertask