Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多值查询以查找最近的匹配行_Php_Mysql - Fatal编程技术网

Php 多值查询以查找最近的匹配行

Php 多值查询以查找最近的匹配行,php,mysql,Php,Mysql,我希望创建一个查询,返回一组值的最近匹配行。这些值通常在1-3之间(一个是1-5) 我不确定正确处理这个脚本的最佳方法。我曾经有人说使用距离是一种方式,我也有人说使用where/or是一种方式。基本上,结果不必是精确匹配,它只需按接近程度列出结果 这里的表单基本上就是我想要复制的。如果有人能说明我应该采用的查询方法,我将不胜感激。通过获取所选数字的绝对值减去所有列的列值之和,生成计算出的总“距离” SELECT id, ABS(5-col1)+ABS(5-col2)+ABS(5-col3) as

我希望创建一个查询,返回一组值的最近匹配行。这些值通常在1-3之间(一个是1-5)

我不确定正确处理这个脚本的最佳方法。我曾经有人说使用距离是一种方式,我也有人说使用where/or是一种方式。基本上,结果不必是精确匹配,它只需按接近程度列出结果


这里的表单基本上就是我想要复制的。如果有人能说明我应该采用的查询方法,我将不胜感激。

通过获取所选数字的绝对值减去所有列的列值之和,生成计算出的总“距离”

SELECT id, ABS(5-col1)+ABS(5-col2)+ABS(5-col3) as distance
FROM sometable
ORDER BY distance ASC

其中
5
是您要比较的值。

最接近的文本匹配?最近整数匹配?如果为整数,则只需添加一个计算列,其中包含与值的距离,并按距离排序。不确定where/or匹配如何工作,整数,但多个整数多个整数,在同一列中?很遗憾,我不能理解它。步骤1必须是“定义最近的匹配”!并且一开始就要保持简单。