MySQL查找3列/值的最相似组合

时间:2012-01-18 21:18:14

标签: php mysql sql database

我试图在PHP中创建一个非常基本的图像匹配脚本,我正在做的是抓取每个通道的RGB平均值,然后将这3个值与存储在数据库中的结果进行匹配。

所以我完成了所有这些,并且在数据库中设置了结果,我现在无法编写我的最终查询以检查来自我的活动图像的计算结果与存储的结果。

所以DB表现在看起来像这样:

id (primary index)    
name
image
rval (fulltext index)
gval (fulltext index)
bval (fulltext index)

最初,我将颜色平均字段设置为INT,但现在更改它们以全文搜索...我真的不确定如何解决这个问题:P

无论如何,所以我的查询应该是这样的:

$rval = '100';
$gval = '109';
$bval = '114';

"SELECT name, image FROM table WHERE rval LIKE '$rval' AND gval LIKE '$gval' AND bval LIKE '$bval' LIMIT 3"

然后理想情况下它会返回3个最相似的组合。

SQL向导,如果您有任何建议,我很乐意听到/看到它们!在此先感谢大家:)

1 个答案:

答案 0 :(得分:0)

您可以尝试在每个rgb值的值范围内进行搜索。

$rval = '100';
$gval = '109';
$bval = '114';

"SELECT name, image FROM table WHERE rval BETWEEN ".$rval-10." AND ".$rval+10.....etc.

当然,我认为这不会给出三种最合适的组合,你必须先解决这个问题,直到你有三场比赛。 -1,-2,-3点之外,就像那样。