在MySQLI中按编号查找最接近的匹配项

时间:2015-07-18 19:13:48

标签: php mysqli

我正在开发一个PHP / MySQLI应用程序,用户需要输入一个数字,然后它应该得到与该给定数字最接近的5条记录。

这可以通过一个简单的SQL字符串完成,还是我需要将所有数字都放入一个数组中,然后匹配...?

谢谢!

1 个答案:

答案 0 :(得分:2)

这可以通过以下查询来实现:

SELECT * FROM [table] 
ORDER BY ABS([column] - [userinput])
LIMIT 5

但是,如果您可以提供更多信息,我们也可以为您提供更好的解决方案。这个查询的可扩展性不是很高,并且会在几千行开始变慢之后。

您打算如何使用此查询?我们在谈论成千上万的唱片吗?它是什么类型的数字?有一些模式吗?所有这些问题都可以提供更精确的解决方案,可以更好地扩展您的系统。