Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Zapytanie IN i przedział
JamalBIG
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


Witam

Czy jest możliwe zastosowanie przedziału w zapytaniu do bazy danych z wykorzystaniem IN np.
  1. ... WHERE parametr IN(5,6,7,8)

a całość prezentowała by się mniej więcej tak:
  1. ... WHERE parametr IN(>=5)


Pozdrawiam
Go to the top of the page
+Quote Post
Greg0
post
Post #2





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

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


Nie łatwiej po prostu
  1. ... WHERE parametr >= 5


Ten post edytował Greg0 18.05.2013, 14:09:36
Go to the top of the page
+Quote Post
JamalBIG
post
Post #3





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


Niestety, tabela jest łączona za pomocą 'LEFT JOIN' która posiada wiele rekordów przypisanych do 'głównej' tabeli;
Go to the top of the page
+Quote Post
Greg0
post
Post #4





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

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


A co to zmienia bo nie bardzo rozumiem
Go to the top of the page
+Quote Post
JamalBIG
post
Post #5





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


dzięki IN połączymy wiele rekordów z dołączanej tabeli, bez IN połączymy tylko pierwszy. Poniżej postaram się opisać sytuację.

Tabela główna - 'przedmiot'. W niej mamy pola ID i NAZWA
Dołączamy do niej tabelę 'przedmioty_parametry' w której mamy listę parametrów przedmiotu. Pola w tej tabeli to ID PRZEDMIOT_ID i WARTOSC
Tak jak wspominałem chciał bym wyszukać w dołączanej tabeli kilka wartości czyli potrzebował bym wyciągnąć kilka pozycji z tabeli 'przedmioty_parametry'

Mam nadzieję, że w miarę jasno opisałem sytuację;
Go to the top of the page
+Quote Post
bpskiba
post
Post #6





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


BETWEEN
http://funkcje.net/view/2/25/5074/index.html
Go to the top of the page
+Quote Post
CuteOne
post
Post #7





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. SELECT pw.*, p.*
  2. FROM produkty_wartosci pw
  3. INNER JOIN produkty p ON (pw.product_id = p.product_id)
  4. WHERE
  5. pw.wartosci IN (5,6,7)


ps. następnym razem wstaw swoj zapytanie, będzie łatwiej rozgryźć w czym problem wink.gif

Ten post edytował CuteOne 18.05.2013, 15:37:15
Go to the top of the page
+Quote Post
JamalBIG
post
Post #8





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


Dzięki za odpowiedzi ale czy da się zastosować w IN przedziały albo coś na wór np. 'większe od np. 10', czyli np.
  1. SELECT pw.*, p.*
  2. FROM produkty_wartosci pw
  3. INNER JOIN produkty p ON (pw.product_id = p.product_id)
  4. WHERE
  5. pw.wartosci IN (>5)
Go to the top of the page
+Quote Post
Greg0
post
Post #9





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

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


To ja się jeszcze raz powtórzę
  1. SELECT pw.*, p.*
  2. FROM produkty_wartosci pw
  3. INNER JOIN produkty p ON (pw.product_id = p.product_id)
  4. WHERE
  5. pw.wartosci > 5
Go to the top of the page
+Quote Post
JamalBIG
post
Post #10





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


Tak ale kiedy zapytanie wygląda następująco, zwraca pusty rekord, a przedmiot z takimi rekordami jest w bazie danych

  1. SELECT pw.*, p.*
  2. FROM produkty_wartosci pw
  3. INNER JOIN produkty p ON (pw.product_id = p.product_id)
  4. WHERE
  5. (pw.wartosc IN('koko') AND pw.wartosc >= 10)
Go to the top of the page
+Quote Post
CuteOne
post
Post #11





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


wartosc = koko AND wartosc >= 10 questionmark.gif trochę nie logiczne smile.gif
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 Aktualny czas: 19.08.2025 - 12:54