sql >> Databáze >  >> RDS >> Mysql

Nalezení nejbližší číselné shody v databázi s tím, co uživatel zadal do php

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

v zásadě vezměte rozdíl v poli s číslem, které chcete, a hodnotu zadanou uživatelem, pak seřaďte podle rozdílu vzestupně a poté vraťte první řádek.

Přesná shoda by tedy měla rozdíl 0 a vyšla jako první. A pak vyberte ten, který je „nejbližší“, pokud neexistuje přesná shoda.



  1. SQL ORDER BY více sloupců

  2. Pomozte prosím s vylepšeními STRING_SPLIT

  3. Jak získat záznam, pokud je počet v Laravelu nula

  4. Jak procházet sadou výsledků mysql