Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Znajdowanie najbliższego dopasowania liczbowego w bazie danych do tego, co użytkownik wprowadził w php

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

po prostu weź różnicę między żądanym polem liczbowym a wartością podaną przez użytkownika, a następnie posortuj według różnicy rosnąco, a następnie zwróć pierwszy wiersz.

Tak więc dokładne dopasowanie miałoby różnicę 0 i wyszłoby jako pierwsze. A następnie wybierz ten, który jest „najbliższy”, jeśli nie ma dokładnego dopasowania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - liczenie według miesiąca (w tym brakujące rekordy)

  2. Mysql dynamicznie buduje ciąg zapytań w procedurze składowanej w oparciu o logikę

  3. Funkcja MySQL CHAR() i wyjście UTF8?

  4. Jak rozwiązać niejednoznaczne nazwy kolumn podczas pobierania wyników?

  5. Konwertowanie ciągu znaków na format znacznika czasu MySQL w php