Tengo una base de datos de tallas de ropa, el usuario ingresa sus medidas y devuelve una coincidencia, si no hay coincidencia, devuelve una lista con las coincidencias más cercanas a los detalles de sus usuarios.

Lo que quiero hacer es, si no hay una coincidencia perfecta, mostrar la coincidencia que se acerque más a sus medidas.

Esta es mi consulta para obtener las coincidencias.

 SELECT * FROM sizing where bust_cm like '$bust%' AND waist_cm like '$waist%' AND hips_cm like '$hips%'

Sin embargo, la mejor coincidencia podría ser el tamaño correcto en dos, pero solo uno o dos dígitos en el tercero, por lo que estoy tratando de encontrar la mejor manera de calcular cuál de los resultados coincidió mejor.

-1
Stan801003 22 ene. 2021 a las 13:08

1 respuesta

La mejor respuesta

¿Las medidas de tu mesa son realmente estrictas?

Si son valores numéricos, es posible que desee buscar hacerlo buscando filas con la diferencia mínima entre los valores de la base de datos y sus entradas.

SELECT * 
FROM sizing
ORDER BY (ABS(bust_cm - $bust) + ABS(waist_cm - $waist) + ABS(hips_cm - $hips)) ASC
0
ajCary 22 ene. 2021 a las 10:20