sql >> Databasteknik >  >> RDS >> Mysql

Att hitta den närmaste numeriska matchningen i en databas till vad en användare har skrivit in i php

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

i princip, ta skillnaden mellan nummerfältet du vill ha och det användarangivna värdet, sortera sedan efter skillnaden stigande och returnera sedan den första raden.

Så en exakt matchning skulle ha en skillnad på 0 och komma ut först. Och välj sedan ut den som är "närmast" om det inte finns någon exakt matchning.



  1. Varför ignorerar Rails en återställning i en (pseudo)kapslad transaktion?

  2. Värden "värdnamn" är blockerad på grund av många anslutningsfel; avblockera med 'mysqladmin flush-hosts'

  3. Enradsfunktioner i Oracle sql

  4. Infoga data i MySQL-databasen från Android-appen. Ändringar återspeglas inte i databasen