Tema: Re: kaip (pa)select(inti) ?
Autorius: Jornada Del Muerto
Data: 2011-02-08 15:48:26
    O kudel gi ne, siaip gal dzipa siulyciau, tankas per daug demesio sukeltu, nors ir domiuosi ginklais :) esme tik kad kaip ir if sake, nepasakyta koks SQL, o LIKE bus praktiskai visur, kaip sakant jei vyksta stringo karpymas jis darosi kitaip skirtinguose sql...

    Kita vertus galima aisku cia teoriju prigalvot, net optimizuojanciu paieska, pvz. 

    1. Gaunam stringa XXXX-XXXX-XXXX;
    2. Irasome i duomenu lenta;
    3. Tada splitinam per '-' simboli i atskirus XXXX elementus, juos itraukiam i sekancia lenta jei neegzistuoja dar jie joje, jeigu egzistuoja einame prie 4 punkto, jeigu ne itraukiame ir einame prie 4 punkto:

    TABLE search_values ( value_id PK, value <unique index>  )

    4. Fiksuojame search_refs lentoje atitinkamu splitintu XXXX reiksmiu value_id ir duomenu lentos iraso id.

    TABLE search_refs ( id PK, value_id <index>,  ref_id - duomenu lentos iraso id aka duomenu_lentos_id )
    
    5. Paieska tampa trivialia:

    SELECT 
        d.*
    FROM 
        search_values sv 
    INNER JOIN
        search_refs sr On sr.value_id = sv.value_id
    INNER JOIN
        duomenu_lenta d On d.duomenu_lentos_id = sr.ref_id
    WHERE 
        sv.value = 'XXXX'

Vualia ;) 2 lentom daugiau, taciau elementarus selectas viska graziai istraukia ;) toks principas naudojamas paiesku indeksavimams.


Sekmes!

Freelancer Developer
www.lythum.lt  - new design / tiesa dariau pats, o neesu designeriu :)