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 :)