Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Losowe wartości MySQL
Robert1985
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 7
Dołączył: 5.08.2009
Skąd: Tychy

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


  1. #Napisać procedure, która z tablicy Customers pobierze n losowo wybranych klientów.
  2. #(Uwaga! Mozna skorzystać z tabel pomocniczych)
  3. delimiter //
  4. CREATE procedure los_klient(IN n int)
  5. begin
  6. CREATE TABLE los LIKE customers;
  7. while n > 0 do
  8. REPLACE INTO los (SELECT * FROM customers ORDER BY rand() LIMIT 1);
  9. SET n = n - 1;
  10. end while;
  11.  
  12. SELECT * FROM los;
  13. DROP TABLE los;
  14. end //
  15. delimiter ;


Problem jest taki ,że jeżeli klucz główny z tabeli Customers się powtórzy to chciałbym ,aby funkcjia i tak wypisała mi podaną liczbę klientów. A dzieje się inaczej zarówno w ten sposób jak również próbowałem używając INSERT IGNORE ten rekord ,który jest pomijany jest zliczany i w zwrocie dostaję de facto jeden mniej niż powinienem ,kombinuję z tym już jakiś czas i nie wiem jak to wykonać. Chcialbym poprostu ,aby jeżeli INSERTnatrafi na powtarzający się klucz zignorował to ,ale ,aby w zamian wyszukał jeszcze jeden tak ,aby liczba zwrotów się zgadzała.


--------------------
"Istnieją dwa sposoby projektowania oprogramowania. Można napisać je tak prosto, że w oczywisty sposób nie będzie w nim niedoskonałości; można też uczynić je tak skomplikowanym ,że nie będzie w nim żadnych oczywistych niedociągnięć.Pierwsza metoda jest znacznie trudniejsza." C.A.R Hoare
Go to the top of the page
+Quote Post

Posty w temacie
- Robert1985   [MySQL]Losowe wartości MySQL   30.09.2009, 19:29:00
- - sada   Może DISTINCT Id   1.10.2009, 11:09:59
- - Robert1985   Nie należało użyć innego warunku, ale dzięki za do...   1.10.2009, 16:06:46


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: 21.08.2025 - 15:50