100+ eilučių SQL užklausos :))
Iki praėjusių metų vidurio į SQL užklausas taip smarkiai niekados neįsijausdavau. Būdavau linkęs viską labiau iš PHP pusės realizuoti, na o kadangi teko dar ir tokį kursą išklausyti pavadinimu DBVS, tai tuo pačiu ir labiau pačiu SQL ir jo galimybėmis pradėjau domėtis.
Anksčiau teikiau pirmenybę new DateInterval(“P7D”) vietoje ADDDATE(CURRENT_DATE,7) time() vietoje UNIX_TIMESTAMP() vartoti, praktiškai beveik nenaudodavau UNION’u, bei CASE – abu pastaruosius dažniausiai realizuodavau kaip atitinkamai dvi užklausas bei if’ais/switch’ais. Beto, tokio pomėgio 10 ir daugiau INNER/LEFT/RIGTH JOIN’ams irgi kažkaip neturėjau, tai realizuodavau keliomis užklausomis.
Tik vieno dalyko gaila, kad PHP nepalaiko komentarų query_mysql(..) dalyje. Na dalinai turbūt dėl to, kad įmanoma padaryti tik vieną užklausą, o bet tačiau, kai užklausos tampa 100+ eilučių ilgio, tai pasikomentuoti kartais būna visai naudinga(apie brutalų:
'dabar skaičiuosime tikrąjį id' AS comment_1
nekalbu).
Aišku, kaip programuoju Zend’u, tai ten viską gamina autogen’as su savo:
$select->from( … table and cols… );
$select->where( … search… );
$select->order( …sorting… );
$select->where( … search… );
$select->order( …sorting… );
Bet, tų Zend projektų yra ne visi, ypač tie, kuriems turiu daryti Maintenance’ą, kurie buvo buildinti 5-6yrs ago.
Tai vat, šiandien visai netikėtai pasižiūrėjau į ‘trumputę’ užklausėlę kurią parašiau vienai GIS(geografinė-informacinė-sistema), ir pamačiau kad mano QUERY’is jau lenda ties 100+ lin’ų riba.

100 eilučių MySQL užklausa
Ir šitas dalykas asmeniškai kodo švarumo atveju daug kokybiškiau atrodo, kaip pačiam teko stebėti:
desing paternai vienur (nesvarbu ar tai tiesiog pre-html output’o paruošimas su sugeneruotais array variable’ais, ar paruoštas SMARTY autogen templat’as), gen php kodas antroj vietoj, funkcijos – trečioj, klasės – ketvirtoje, include/require libai dar kitur, o štai dabar jau ir sql queriams pradėjau naudoti atskirą prefixą – t.y. excludint’i iš code failų į atskirą failą
.
Ir tai yra labai logiškai, ypač tais atvejais kaip SQL queriai yra 100+ eilučių
.