Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Jak sprawić, aby zapytanie SQL zwracało różne wyniki ?
--Mati--
post
Post #1





Goście







Mam takie zapytanie:

  1. SELECT id,tytul FROM `m` WHERE `id`>0 AND `y`>0 AND `b`=0 LIMIT 1


Powiedzmy, że 100 rekordów spełnia te założenia, ale chciałbym, żeby to zapytanie nie zawracało mi pierwszego pasującego wyniku
tylko jakiś losowy z tych stu.

Nie wiem jak to zrobić, może wprowadzić tam gdzieś rand(), tylko gdzie i jak ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
AlexDeLarge
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 14
Dołączył: 14.02.2010

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


1. ORDER BY RAND() LIMIT 1 - rozwiązanie ZŁE, w przypadku dużej liczby rekordów dla każdego wyniku musi zostać obliczona liczba pseudolosowa i na końcu wykonane sortowanie
2. SELECT COUNT(*) AS c FROM m WHERE (warunki)
i w PHP:
  1. $randrow = rand(0, $row['c']); //z zapytania
  2. $pdo->query("SELECT ... FROM ... WHERE ... LIMIT $randrow, 1");


Zdrówka życzę.

Ten post edytował AlexDeLarge 13.07.2011, 13:41:54
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 15:05