Salut,
Ma poate ajuta si pe mine cineva sa-mi arate în ce condiții este posibil ca două select-uri identice consecutive (fără nici o altă comandă între ele), efectuate în aceeași sesiune de lucru, pe același tabel, pot produce rezultate diferite.
Poate ai stored procedures sau triggers?
Ai cumva un ORDER BY + LIMIT, iar order-ul este pe o coloană care are mai multe valori identice decât valoarea de la limit?
Poti sa-mi dai un exemplu poate ?
Proiectarea bazelor de date - asta’i o materie de la facultate ?
Si intrebarea este pentru tema de acasa ?
Unul din cazuri este atunci cand selectezi in functie de data (si ora), atunci poti avea rezultate diferite in cazul in care select-urile sunt identice si consecutive.
Uite aici un exemplu:
SELECT DATE_DIFF( NOW(), created_at ) from orders;
Tot timpul va da rezultate diferite :))
PS. Un exercitiu in inutilitate daca ma intrebi pe mine
Este materie de facultate da, dar nu e tema. Intreabarea mi-a fost adresata acum ceva timp de catre proful de curs, in timpul cursului.
E posibil sa se intample daca ai un query in care folosesti GROUP BY, dar nu incluzi toate field-urile pe care le selectezi.
Asta e motivul pentru care, in MySQL, incepand cu versiunea 8, iti da eroarea cu only_full_group_by, daca nu respecti behaviour-ul de mai sus, only_full_group_by, by default.
only_full_group_by = off tells MySQL engine: always apply
GROUP BY
and if you have doubt about what results to choose, just pick one randomly!