Topic: Stringai :)

Klausimelis butu toks

Turime Teksta "Bla lba nla"; :)
Reiktu MYSQL uzklauseles kad rezultatas gautusi:

ROWS
1 Bla
2 lba
3 nla

Trumpiau noriu SEPARATING BY space in ROWS


Is anksto dekavoju :)

Re: Stringai :)

I atskiras eilutes su paprasta užklausa neišskaidysi. Kažką galbūt būtų galima pagaminti nebent su stored procedūrom (STORED PROCEDURES), bet tam reikia MySQL 5.1.x versijos.

Bendru atevju jeigu jau prisireikė tokio dalyko galiu pasakyti, kad tikriausiai yra parinkta netinkama duomenų struktūra, ir tvarkyti reikėtu ją, o ne kurti itin neefektyvias užklausas ;)

Daugiau apie stored procedūras: http://dev.mysql.com/doc/refman/5.1/en/ … dures.html

p.s. intriguojantis temos pavadinimas...

Re: Stringai :)

Nu va :(
O as galvojau kad galima issisukt tik su mysql, reikalas tame kad reikia eiti per colsa ir esamuose ten tekstuose surasti zodzius kurie pasikartoja  daug kartu ne tik tekstuose bet ir pries tai buvusiuose tekstuose, ir gautas masyvas (zdodis=>count'as),

Re: Stringai :)

Tai toks paprastas sprendimas būtų: dedant tekstą į duomenų bazę, jį skaidyti į žodžius, kuriuos papildomai dėti į atskirą lantelę (be pasikartojimų). Toje papildomoje žodžių lentelėje turėtų būti nuorodą į pagrindinę lentelę (kurioje saugomas tekstas). Tokiu būdu galėsi skaičiuoti norimus rezultatus gana nesunkiai. Aišku tai nėra idealus sprendimas ir reikia konkrečiu atveju aiškintis situaciją, bet toks metodas yra dažnai naudojamas nes gana paprastas, aiškus ir lengvai įgyvendinamas.

O tai ką tu norėjai padaryti yra labai neefektyvu, nes kas karta liepti MySQL'ui apdoroti tekstą yra bloga praktika. Dažniausiai tekstas yra įrašomas vieną kartą. Jeigu tarkim žodžiai pavieniuose tekstuose yra skaičiuojami daug kartų tada dar geriau būtų netik, kad laikyti žodžius atskioje lentelėje, bet ir jau paskaičiuotus jų kiekius konkrečiuose tekstuose. Aišku tai papildomai didina duomenų struktūrą/kiekį nuo vienos lentelės iki kelių, bet šiuo atveju labai supaprastina uždavinį.

Beto niekur nedingo ir stored procedūros variantas.

Taip pat jeigu tu bandai gaminti kokią nors "gudrią" paieška ar panašų dalyką (tarkim tau reikia žodžių skaičiaus tekstuose, kad žinotum, kuris tekstas labiausiai atitiko užklausą) tai vertėtų pasiskaityti apie FULL-TEXT indeksą, kuris tai atliks už tave: http://dev.mysql.com/doc/refman/4.1/en/ … earch.html