![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 21.12.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Załóżmy że mam krótki formularz z którego wybieram parametry które mają filtrować dane pobierane z bazy np. kolor roweru wybieram z dropdown list i potem w klauzurze zaznaczam . Czy można w mysql zbudować takie zapytanie w którym wartość tej zmiennej kolor może przyjąć dowolną wartość? Czy może trzeba w takim przypadku budować takie zapytanie gdzie się po prostu pomija ten warunek? Z góry Dziękuje i Pozdrawiam w Nowym Roku |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możesz użyć where kolor like '%' ale to oczywiście nie ma sensu większego. Po prostu pomijasz kolumnę jeśli nie chcesz po niej ograniczać. Swoją drogą używaj bindowania
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Przyjmując że $kolor zamiast 'niebieski' jest NULL, możesz użyć:
WHERE kolor=Coalesce($kolor, kolor) |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@mmmmmmmm ale wiesz ze Coalesce(niebieski, kolor) pluje bledem?
![]() @autor jak juz wspomnial viking poprostu nie dodawaj do zapytania pol, po ktorych nie chcesz ograniczac. Tutaj opisalem jak sie buduje takie dynamiczne zapytania http://nospor.pl/wyszukiwarka-zapytanie-za...d-warunkow.html -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
@nospor, ale wiesz, że zapytanie jest
WHERE kolor=Coalesce('niebieski', kolor) ? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@mmmmmm oczywiscie ze wiem
tylko widzisz, ty nie napisales Coalesce('$kolor', kolor) Ty napisales Coalesce($kolor, kolor) Przez co otrzymasz Coalesce(niebieski, kolor) Nigdzie nie napisales, ze zmienna $kolor ma byc budowana tak $kolor = "'niebieski'"; ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 21.12.2016 Ostrzeżenie: (0%) ![]() ![]() |
To w takim razie pozostaje mi zapoznanie się z artykułem i próbowanie po swojemu.
Dziękuje za odzew. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Przyjmując że $kolor zamiast 'niebieski' jest NULL, możesz użyć:
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@mmmmmmm widzialem to. Ale nie wiem czy wiesz, ale postem nie ida dane w apostrofach. To ze sobie cos zalozyles w zaden sposob nie sprawi, ze w magiczny sposob sie tam one pojawia
![]() No chyba ze wlozyc je recznie, mozna, oczywiscie, ale mimo wszystko wypadaloby o tym wspomniec, bo nasz autor tak troszke poczatkujacy ![]() Poza tym proponowane przez Ciebie rozwiazanie osobiscie uwazam za zle. Tego typu rzeczy robi sie przez dynamiczne budowanie warunkow zapytania w zaleznosci od danych jakie szukamy, a nie wkladanie do zapytania wszystkiego, nawet pusstych danych -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:09 |