当值有点随机时,在mysql表中查找类似的项目

时间:2016-10-12 09:07:31

标签: php mysql

我有实验室分析结果数据库。由于分析的性质,结果只是随机 - 在现实世界中是正常的。所有结果都以整数存储在数据库中(我们将结果保存为ppm - 百万分之一)。 问题是,我想找几次相似的(可能相同的)材料分析。 数据库看起来像这样:

id  |v1  |v2  |v3  |v4  |... |vn
----|----|----|----|----|----|----
1   |4560|5600|3333|  56|    |0
2   |4575|5583|3354|  67|    |0
3   |4565|4333|3332|  60|    |0
4   |   0|5583|3333|  60|    |0

ID为1和2的材料相同,材料3和4是唯一的。

我想给予容差+ -30或其他东西以消除结果随机因素并找到相同的材料。它可能很好,每列的容差值可以是单独的。

简化。如何让mysql返回值为+的类似整数 - 一些错误值?

1 个答案:

答案 0 :(得分:0)

你真的不想用SQL做这件事。

基本上你正在做的是计算数据库定义的图形的connected components,如果它们在你定义的容差范围内,那么两行有一条边连接它们。

假设您的数据集足够小以适应内存,这很可能是在您的实验室中进行样本测试的结果,那么您最好的选择是全部读取,然后使用合适的库来计算连接的组件。例如,在Java中,您可以使用JGraphT;如果您需要在PHP中执行此操作,那么我确信也可以使用图形库。

在高端,对于大量数据集,有一些库可以在Spark集群上进行...