Despre cât de “sănătos” e MySQL s-au scris multe. Alții l-au înjurat sau blestemat cu mai mult talent decât aș putea-o face eu. Un mic exemplu care m-a lovit azi:
1. Inițial (greșit):
SELECT MIN(id) FROM inbox WHERE data>2018-01-01;
rezultat: 2.635.027
2. Final (corect):
SELECT MIN(id) FROM inbox WHERE data>’2018-01-01′;
rezultat: 12.667.657
Singurul lucru care mi-a sugerat că varianta 1 nu e ceea ce-mi doream e că știam la ce rezultat să mă aștept.
Am încercat să înțeleg ce execută el de fapt în varianta “greșită” dar nu am reușit, nici pe baza intuiției nici pe baza datelor din tabelă.
Observați “el” în fraza anterioară care ilustrează încă o dată cum psihicul uman supus necunoscutului (malefic) tinde să personifice.
cred ca data>2018-01-01 inseamna data>2016 (= 2018 – 1 – 1)
Și data 2016 ce înseamnă? :) Deja bănuiesc răspunsul: 2016 înseamnă 2016-01-01. DEEECI data 2018-01-01 în opinia MySQL e de fapt data ‘2016-01-01’. Care este ea. Bun așa.