Proiectarea bazelor de date, nevoie de putin ajutor

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?

1 Like

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.

2 Likes

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

1 Like

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!