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

Uzyskać wszystkie rekordy z bazy danych MySQL, które znajdują się w Google Maps .getBounds?

Wszystkie poprzednie odpowiedzi działają tylko na 1/4 świata!

Odpowiedź W3t Tr3y była bliska, ale zawierała błąd (dodatkowe „<”).

Wszystkie z nich działają tylko w USA, ponieważ znajdują się one na półkuli PÓŁNOCNEJ. Nie działają na półkuli południowej ani w krajach wschodnich (na prawo od Greenwich).

Oto proste rozwiązanie bez funkcji i skomplikowanych rzeczy.

litery są wynikami w kolejności, w jakiej otrzymujesz je z map.getBounds(), tj. swlat, swlng, nelat, nelng =a, b, c, d.

SELECT * FROM tilistings WHERE
(CASE WHEN a < c
        THEN lat BETWEEN a AND c
        ELSE lat BETWEEN c AND a
END) 
AND
(CASE WHEN b < d
        THEN lng BETWEEN b AND d
        ELSE lng BETWEEN d AND b
END) 

lub inne rozwiązanie z i/lub (możesz przetestować pod kątem szybkości, nie wiem jak uruchomić go więcej niż raz w WorkBench)

SELECT * FROM tilistings WHERE
(a < c AND lat BETWEEN a AND c) OR (c < a AND lat BETWEEN c AND a)
AND 
(b < d AND lng BETWEEN b AND d) OR (d < b AND lng BETWEEN d AND b)

Teraz możesz zmapować cały świat :) Mam nadzieję, że ktoś może oznaczyć powyższe odpowiedzi jako niepoprawne, ponieważ sprawiają, że tracimy dużo czasu dla milionów uczących się ludzi takich jak ja. Zastanawiam się, jak zdobywają tyle głosów, kiedy w rzeczywistości nie działają!

PS:Szanse na to, że krawędź piksela Twojej mapy pasuje do dokładnej wartości 15 dziesiętnych współrzędnych, są biliony razy mniejsze niż prawdopodobieństwo pominięcia całego 3/4 świata!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić wiele wierszy w MySQL

  2. Wstawianie wielowymiarowej tablicy php do bazy danych mysql

  3. MySQL zgłasza błąd nieprawidłowej wartości ciągu

  4. Przy imporcie MySQL:BŁĄD w wierszu 32769:Nieznane polecenie „\”

  5. Maksymalna liczba rekordów w tabeli bazy danych MySQL