Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Warunek where na kolumnie która jest wyliczana z dwóch pozostałych.
szosa
post 28.07.2019, 18:14:48
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.10.2013

Ostrzeżenie: (0%)
-----


Cześć, mam tabelę zawierającą współrzędne punktu (xa, ya), chcę zrobić zapytanie które po podaniu 2 punktu i maksymalnej długości zwróci mi wyniki których odległość będzie mniejsza od maksymalnej. Czyli coś takiego:


  1. SELECT `xa`, `ya`, SQRT((POW((xa-ya),2)+POW((@xb-@yb),2)) AS `distance` FROM `points` WHERE `distance` <= @maxDistance ORDER BY distance ASC;


Niestety dostaje zwrotkę że kolumna distance nie istnieje. Czy macie może pomysł jak inaczej to ugryźć, myślałem może o Storage procedure ale nie mam pomysłu jak to ugryźć. Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sazian
post 29.07.2019, 18:57:35
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


Albo ja czegoś nie rozumiem albo ten warunek jest bez sensu,
przecież każda kolumna będzie mniejsza lub równa od maksymalnej ...

Mysql ma specjalny typ danych do przechowywania współrzędnych który nazywa się point,
przy jego pomocy i funkcji wbudowanej ST_Distance https://dev.mysql.com/doc/refman/8.0/en/spa...ion_st-distance
możesz łatwo wyznaczyć odległość. Daje to tyle że w warunku możesz użyć ST_Distance(p1,p2)<=coś
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.08.2025 - 01:20