Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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
trueblue
post 28.07.2019, 20:27:51
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


W klauzuli WHERE musisz podać ponownie wyrażenie, albo użyć zapytania bez WHERE jako podzapytania, a warunek przenieść do zapytania nadrzędnego.


--------------------
Go to the top of the page
+Quote Post
sazian
post 29.07.2019, 18:57:35
Post #3





Grupa: Zarejestrowani
Postów: 1 043
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
trueblue
post 29.07.2019, 20:06:15
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


@maxDistance to nie maksymalna wartość z kolumny distance w tabeli, której swoją drogą nie ma, ale zadana wartość zmiennej.
Autor chce znaleźć wszystkie punkty oddalone od punktu @xb,@yb o nie więcej niż @maxDistance.


--------------------
Go to the top of the page
+Quote Post

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: 28.03.2024 - 10:17