sql >> Database >  >> RDS >> Mysql

Het vinden van de dichtstbijzijnde numerieke overeenkomst in een database met wat een gebruiker heeft ingevoerd in php

SELECT ABS($user_value - numeric_field) as nearest, ...
FROM yourtable
ORDER BY nearest ASC
LIMIT 1

neem in feite het verschil van het gewenste getalveld en de door de gebruiker opgegeven waarde, sorteer vervolgens oplopend op het verschil en retourneer vervolgens de eerste rij.

Dus een exacte overeenkomst zou een verschil van 0 hebben en als eerste uitkomen. En kies dan degene die het "dichtstbijzijnde" is als er geen exacte overeenkomst is.



  1. MySQL:transactie binnen een opgeslagen procedure

  2. De beste manier om gelijktijdigheidsproblemen op te lossen

  3. Aspnetcore instellen met MySQL-database in docker

  4. Correct opgemaakte MySQL date insert statement retourneert alle nullen