php - 在数据库中查找与用户在 php 中输入的内容最接近的数字匹配

标签 php mysql

我需要找到一种方法来查找数据库中的字段;从数字上看,是否与用户在网络表单中输入并提交的内容最接近。

更深入的解释:

在数据库表中,有两行的字段条目分别为 80.1 和 80.7。如果站点用户在 Web 表单的输入元素中输入 80 并提交该值,则处理脚本会查找该表并找到包含 80.1 的行并将其选为最接近的匹配项。

如果是相反的方式,即用户输入一个浮点整数 (80.6),表格会很容易地查找最接近的四舍五入数字,即 (90)。我显然遗漏了一些东西,我认为 PHP 中会有一个内置函数来实现这一点。

如果我没有很好地解释自己,请道歉,如果是这样,请告诉我。

最佳答案

SELECT ABS($user_value - numeric_field) as nearest, ...
FROM yourtable
ORDER BY nearest ASC
LIMIT 1

基本上,取你想要的数字字段和用户提供的值的差值,然后按差值升序排序,然后返回第一行。

因此,完全匹配的差异为 0,并且最先出现。如果没有完全匹配,则选择“最接近”的那个。

关于php - 在数据库中查找与用户在 php 中输入的内容最接近的数字匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5678010/

相关文章:

mysql - 子查询对项目进行计数,然后按主查询的字段对它们进行分组,不重复

mysql - 从 Docker 卷恢复 mysql 数据

php - mysqli_fetch_array 在 php 7 中不起作用

php - foreach 循环未显示所需结果

javascript - 防止用户更改付款页面上收取的金额

php - 解密和读取 Suhosin session 数据

sql - MySQL - 将表连接到自身,但保留原始结果

MySQL:无法在 FROM 子句中指定目标表 'list' 进行更新

MySQL WHERE 以逗号分隔的字符串

java - Web 服务器如何填充 $_POST 和 $_GET?