I need to find the closest point of three given numbers in my database and return their "test" cell.
these are the calculations i want to do where r1, g1 and b1 are different columns in my table and r2,g2 and b2 are the given numbers.
d=sqrt((r2-r1)^2+(g2-g1)^2+(b2-b1)^2)
p=min(d/sqrt((255)^2+(255)^2+(255)^2))
What ive got so far is
$rr = 130;
$gg = 83;
$bb = 234;
SELECT test
FROM `my table`
WHERE MIN(SQRT(POWER($rr-r,2)+POWER($gg-g,2)+POWER($bb-b,2)) /
(SQRT(POWER(255,2)+POWER(255,2)+POWER(255,2)))
Im looking for ways to solve this, maybe if i do the calculations outside of mysql with the use of php?
The data in my table are random numbers between 0 and 255, what algorithm can i use for optimal search?
sample table
╔════╦══════════════╦══════╦════╦═════╦
║ id ║ test ║ r ║ g ║ b ║
╠════╬══════════════╬══════╬════╬═════╣
║ 1 ║ sample1 ║ 4 ║ 72 ║ 251 ║
║ 2 ║ sample2 ║ 148 ║ 9 ║ 139 ║
║ 3 ║ sample3 ║ 101 ║ 233║ 88 ║
║ 4 ║ sample4 ║ 231 ║ 147║ 16 ║
╚════╩══════════════╩══════╩════╩═════╝
given the numbers rr=151 gg= 18 and bb=140 i want it to return "sample2"