Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Limit rekordów w zależności od działu
rafor4
post
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 (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Pyton_000
post
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
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
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
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
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 (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:50