sql >> Database teknologi >  >> RDS >> Mysql

ST_Buffer-ækvivalent for cirkelbaserede søgninger i MySQL?

Så vidt jeg ved, er bufferfunktioner endnu ikke implementeret i MySQL:

Hvis jeg forstår dit spørgsmål rigtigt, behøver du muligvis ikke engang en rumlig funktion for at udføre denne forespørgsel. Du kan bruge en "almindelig" SQL-forespørgsel og Euklidisk afstand :

select * 
from gistable g 
where SQRT(POW(circleCenterPT.x - point.x,2) + POW(circleCenterPT.y - point.y,2)) < radius

Håber dette hjælper.

Rediger: Ydeevne ville helt sikkert være et problem med denne forespørgsel.

Hvad angår de rumlige funktioner i MySQL, ser det ud til, at de seneste snapshots indeholder nye funktioner som Buffer eller Distance. Du vil måske prøve det:



  1. PHP + MySQL:Forskellen mellem bufferede og ubuffrede forespørgsler

  2. 2 måder at formatere et tal med førende nuller i Oracle

  3. Multiplikationsaggregatoperator i SQL

  4. Hvad er alle de SQL-operatorer i Laravel?