• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Warunek where na kolumnie która jest wyliczana z dwóch pozostałych.

0 głosów
308 wizyt
pytanie zadane 28 lipca 2019 w SQL, bazy danych przez szosa Nowicjusz (120 p.)

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:

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.

1 odpowiedź

0 głosów
odpowiedź 29 lipca 2019 przez Olidaen Nowicjusz (180 p.)
edycja 29 lipca 2019 przez Olidaen

Tak powinno śmignąć:

WITH CTE AS (Select `xa`, `ya`, SQRT((POW((xa-ya),2)+POW((@xb-@yb),2)) as `distance` from `points`)
SELECT * FROM CTE WHERE `distance` <= @maxDistance order by distance asc;

https://dev.mysql.com/doc/refman/8.0/en/with.html

Podobne pytania

0 głosów
1 odpowiedź 236 wizyt
pytanie zadane 8 kwietnia 2018 w PHP przez mi-20 Stary wyjadacz (13,250 p.)
0 głosów
1 odpowiedź 332 wizyt
pytanie zadane 25 stycznia 2020 w SQL, bazy danych przez francus11 Gaduła (3,250 p.)
0 głosów
1 odpowiedź 1,451 wizyt

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,293 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...