Selecteaza inregistrari aleatoriu dintr-un tabel al bazei de date MySQL

Pentru ca am promis ca voi scrie mini-tutoriale simple dar de folos, voi incepe cu un mic tips foarte util uneori, celor care devolta aplicatii care se leaga la baze de date. Nu o data ai nevoie sa selectezi inregistrari dintr-un tabel al bazei de date in mod aleatoriu si mai trebuie sa o faci si rapid. Sa presupunem ca ai nevoie la un magazin online si trebuie sa postezi undeva in index 5 pareri ale fostilor clienti despre magazinul tau, dar cu conditia ca acestea sa se schimbe la fiecare refresh de pagina etc.

Presupunem ca avem deja la dispozitie o baza de date de tip MySQL si un tabel cu parerile fostilor clienti de forma: reviews(id_review,nume_client,content_review).
Comanda MySQL(select-ul) pe care va trebuie sa il rulati este de forma urmatoare:

SELECT nume_client,content_review FROM reviews ORDER BY RAND() LIMIT 0,5

Gata aceasta a fost mare filozofie:), folositi-va cad de mult puteti de operatiile direct oferite de catre MySQL(sau ce fel de baze de date folositi), NU incercati sa extrageti toate informatiile intr-un vector, iar apoi sa faceti „minuni” pentru a scoate random valorile de care aveti nevoie. Din experienta, spun, am intalnit chestii de genul asta facute in X linii de cod, cand totul se putea face intr-un simplu query.

4 Comentarii - “Selecteaza inregistrari aleatoriu dintr-un tabel al bazei de date MySQL”

  1. Ela

    Salut. Si daca vreau pe langa random sa selectez doar niste inreg. WHERE categorie=’xxx’ cum fac? Am incercam sa scriu in continuare conditia dar imi da eroare SQL.
    Multam anticipat!

    Răspunde
  2. Stefan

    Buna Ela, scuze ca raspund asa de greu. Ideea este foarte simpla, poti folosi si conditia de WHERE atentie doar sa respecti ordinea termenilor din conditie, adica WHERE trebuie pus inainte de ORDER BY.

    Răspunde

Lasa un comentariu:

Campurile marcare cu (*) sunt obligatorii! Adresa de email NU va fi facuta publica!