Új hozzászólás Aktív témák

  • bpx

    őstag

    válasz szmegma #1360 üzenetére

    az a baj a mysqllel, hogy nincs benne egyszeru "generator" funkcio, mert egyebkent ez a feladat pl. arra is lefordithato, hogy generaljunk szamokat 1-31-ig es adjunk hozza ennyi napot a mostani datumhoz, ami tisztan SQL lenne

    de rekurziv lekerdezessel megoldhato, csak kell egy olyan forras, amelynek legalabb 31 sora van
    peldaul select SQL megoldas:

    select date_add(CURDATE(), interval o.num day) from
    (select @n := @n + 1 as num
    from information_schema.columns, (select @n := 0) n
    limit 31) o;

    ezzel persze az a baj, hogy mindig az information_schema.columns-hoz (vagy amire epp meg van irva) kell nyulni + akar el is lehetne tarolni a szamokat 1-31-ig egy kulon tablaban (es nem kell feltalalni ujra a kereket naptar tablaval):

    create table numbers (n int);

    insert into numbers
    select @n := @n + 1 as num
    from information_schema.columns, (select @n := 0) n
    limit 31;

    select date_add(CURDATE(), interval n.n day) from numbers n;

    csak hat ez meg megint ronda (szerintem)

    szemlelteteskeppen, Oracle-ben ez ennyi:

    select sysdate + level from dual connect by level <= 31;

    a dual tabla sajatossagai miatt ez raadasul sem diszkrol, sem a cache-bol nem olvas, nem kell PL/SQL-ezni meg context switch sincs

Új hozzászólás Aktív témák