Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Proszę o poradę dotyczącą zapytania
BibDeep
post 1.02.2009, 22:51:49
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 2
Dołączył: 4.01.2007
Skąd: Bydgoszcz

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


na początek tabelka (oczywiście skrócona do istotnych elementów)

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:


  1. SELECT * FROM `pictures` ORDER BY
  2. (CASE `prod_waluta`
  3.  
  4. WHEN 'wal1' THEN `prod_cena`*$kurs1
  5.  
  6. WHEN 'wal2' THEN `prod_cena`*$kurs2
  7.  
  8. WHEN 'wal3' THEN `prod_cena`*$kurs3
  9.  
  10. ELSE `prod_cena` <---- ten warunek dla moja_wal
  11.  
  12. 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 smile.gif


--------------------
Personal Portfolio: http://www.klodzinski.pl/
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: 19.07.2025 - 09:12