camikazee
20.11.2009, 09:53:10
Witam!
Zastanawiam się jak w sposób najbardziej optymalny zrealizować pewne zapytanie. Mianowicie mam w bazie tabele firma. Ma ona przypisane województwo oraz zasięg działania (wojewodztwo, polska). Chciałbym aby jeżeli ktoś wybierze z listy dane województwo szukało firm dla danego województwa dla ustawionego zasięgu działania 'wojewodztwo' oraz bez względu na wartość pola województwo, jeżeli zasięg równy jest 'polska' Może trochę mało logicznie to napisałem, ale myślę, że jest zrozumiałe. Nie chciałbym modyfikować tabel.
nospor
20.11.2009, 09:56:36
a co ma do tego mysql i na dodatek "warunek w warunku"?
Jak nie masz zasieg "polska" to nie dawaj zadnego warunku na wojewodztwo. Gdzie widzisz problem?
camikazee
20.11.2009, 10:12:33
Chodzi o to, że wyszukiwarka ma tylko opcje wyboru województwa. Jeżeli nie wybierzemy, to podczas budowania zapytania nie dodajemy warunku filtrowania województwem. Jeżeli zaś wybierzemy jakiekolwiek województwo wtedy dokleja się warunek typu WHERE wojewodztwo = 'id_wojewodztwa_wybranego'. Tyle że jeżeli dana firma ma w bazie zaznaczony zasięg całej polski, to powinno pomijać ten warunek lub może wyglądać np. tak WHERE wojewodztwo IN(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16). Ale trzeba sprawdzać podczas wyjmowania firmy jaki ma zasięg i w zależności od tego dodawać te warunki.
nospor
20.11.2009, 10:22:24
where (zasieg="polska" or wojewodztwo=wybranewojewodztwo)
camikazee
20.11.2009, 10:38:56
nospor zawstydził camikazee, tyle kombinowania na różne sposoby a najprostszego rozwiązania nie widziałem eeehhh, dzięki