Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Limit rekordów w zależności od działu
rafor4
post 1.06.2016, 14:26:31
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.02.2016

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


Witam.
W jaki sposób mogę ograniczyć ilość zapytań w zależności od działu?

Mam w polu "dział" mysql wpisany jeden z pięciu działów:
Dział1
Dział2
Dział3
Dział4
Dział5

Z działu1 chciałbym pobrać 10 losowych rekordów, z działu2 15 losowych rekordów, z działu 3 20 losowych rekordów, z działu 4 25 losowych rekordów i z działu5 30 losowych rekordów.
Losowość osiągałem przez ORDER BY rand() - wiem, że metoda głupia ale mi wystarczy
Wszystko znajduje się w jednej tabeli.
Próbowałem bawić się np. UNION ale nie osiągnąłem zamierzonego rezultatu.

Prosiłbym o pomoc - chociaż na nakierowanie na właściwy sposób załatwienia tego, bo jak najbardziej podstawy znam tongue.gif
Go to the top of the page
+Quote Post
Pyton_000
post 1.06.2016, 14:43:07
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Piszesz 5 zapytań, pomiędzy nie pakujesz UNION i koniec. Żadnej filozofii tu nie ma.
Go to the top of the page
+Quote Post
rafor4
post 1.06.2016, 14:47:29
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.02.2016

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


Niestety nie działa to w taki sposób. Gdy napiszę dwa zapytania:

SELECT * FROM pytania WHERE dzial='Dział1' ORDER BY RAND() LIMIT 10;
SELECT * FROM pytania WHERE dzial='Dział2' ORDER BY RAND() LIMIT 15;

W php my admin wyskakują mi tylko wyniki z działu1:
"Pokaż wiersze 10 - 10 ( 10 wszystkich, Wykonanie zapytania trwało 0.0008 sekund(y))"
Go to the top of the page
+Quote Post
viking
post 1.06.2016, 14:52:56
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


  1. SELECT * FROM pytania WHERE dzial='Dział1' ORDER BY RAND() LIMIT 10
  2. UNION
  3. SELECT * FROM pytania WHERE dzial='Dział2' ORDER BY RAND() LIMIT 15;


--------------------
Go to the top of the page
+Quote Post
kapslokk
post 1.06.2016, 14:53:35
Post #5





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


  1. (SELECT * FROM pytania WHERE dzial='Dział1' ORDER BY RAND() LIMIT 10)
  2. UNION
  3. (SELECT * FROM pytania WHERE dzial='Dział2' ORDER BY RAND() LIMIT 15)

Z nawiasami, bo bez nich ostatni limit odnosi sie do całego zapytania - a przynajmniej u mnie tak się dzieje ;D

Ten post edytował kapslokk 1.06.2016, 14:54:33
Go to the top of the page
+Quote Post
rafor4
post 1.06.2016, 15:00:57
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.02.2016

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


Cytat(kapslokk @ 1.06.2016, 15:53:35 ) *
  1. (SELECT * FROM pytania WHERE dzial='Dział1' ORDER BY RAND() LIMIT 10)
  2. UNION
  3. (SELECT * FROM pytania WHERE dzial='Dział2' ORDER BY RAND() LIMIT 15)

Z nawiasami, bo bez nich ostatni limit odnosi sie do całego zapytania - a przynajmniej u mnie tak się dzieje ;D


Dokładnie tak samo jest u mnie. Dzięki, to zapytanie działa świetnie smile.gif Nie wiem czy tak się powinno łączyć wybieranie rekordów, ale jak śmiga to jak najbardziej mi to wystarczy - projekt w 100% wewnętrzny.
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: 14.08.2025 - 10:06