tabela produkty
- prod_id
- prod_waluta
- prod_cena
Wyszukuję wszystkie (lub część) produktów z tej tabeli i chcę posortować względem ceny, pomnożonej przez odpowiedni kurs (walutowy).
Zapytanie zostanie wykorzystane w php i można przyjąć dla uproszczenia, że mamy 4 waluty (wal1, wal2, wal3, i moja_wal) oraz dane "kursy" to np $kurs1 (dla przeliczenia z wal1 na moja_wal), $kurs2 (dla wal2 -> moja_wal), $kurs3 (dla wal3 -> moja_wal). Jak powinno wyglądać zapytanie by uwzględniało sortowanie względem przeliczonej ceny na daną walutę (moja_wal)?
Ja wymyśliłem tego typu zapytanie:
SELECT * FROM `pictures` ORDER BY (CASE `prod_waluta` WHEN 'wal1' THEN `prod_cena`*$kurs1 WHEN 'wal2' THEN `prod_cena`*$kurs2 WHEN 'wal3' THEN `prod_cena`*$kurs3 ELSE `prod_cena` <---- ten warunek dla moja_wal END) ASC
Tylko nie jestem pewien czy jest to optymalne zapytanie. Docelowo baza powinna być wydajna do kilku (nie więcej niż 4-5) milionów rekordów produktów, ale póki co (na rok, dwa - będę miał czas na przetestowanie, przemyślenie itp jak najlepszych rozwiązań) wystarczy zapytanie optymalne do max 100 000 rekordów.
Pozdrawiam
