Losowanie liczby z bazy danych


(Konradnie1) #1

Witam.

Jak wylosować jakąś liczbe z bazy danych??

Mam w bazie id arykulu i nazwisko i chce wylosować 1 artykół danego użytkownika i jak to zrobić.

Chodzi mi o to że ten użytkownik ma artykóły o id (1,15,23,43,46) i jak wylosować jedną z tych liczb??


(Drobok) #2

Zakładając, że id to id z koszyka klienta, a nie id artykułu, a artykuł to wartość którą chcesz wylosować.

SELECT `id`,`artykul` FROM `tabela` JOIN (SELECT CEIL(RAND() * (SELECT MAX(`id`) FROM `tabela` WHERE `user`='user')) AS 'id') AS rows USING (`id`) WHERE `user`='user'

//edit, zły szyk zapytania


(Konradnie1) #3

A możesz jaśniej??

Mam tabele artykuly i pola id, nazwisko.

Chcę wylosować jakieś id gdzie np nazwisko=kowalski

Dzięki za szybką odpowiedz.


(Pablo_Wawa) #4

A ja bym najpierw zliczył, ile mamy pozycji w bazie, potem wygenerował wartość losową z tego przedziału (1…) i pobrał ten konkretny rekord

SELECT * FROM tabela LIMIT ,1

gdzie to wartość od 1 do w bazie (LIMIT działa w MySQL, w MS SQL chyba trzeba inaczej).


(Drobok) #5

Moje zapytanie się nie sprawdzi, nie przemyślałem możliwości mieszanie się id. Jak wstawisz where nazwisko=‘kowalski’ do zapytania Pablo_Wawa’y to będzie ok.