Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

select - case sensitive

[es] :: Baze podataka :: select - case sensitive

[ Pregleda: 3884 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

majak

Član broj: 3735
Poruke: 120
213.244.197.*



Profil

icon select - case sensitive09.12.2005. u 10:51 - pre 204 meseci
Potrebno je da pretrazim jedno polje u tabeli i da mi upit
vrati sve redove bez obzira na velicinu slova.

komanda
"SELECT * FROM baza WHERE lower(naziv) LIKE '%"+f_code(lower(cTxt))+"%';"
nije upotrebljiva zato sto je polje 'naziv' sifrirano.

Neznam kako bih iskoristio funkciju f_decode().
Baza je SQLite.
Ako nije moguce, kako bi se isto resilo recimo ako bi tabela bila u access-u ili MSSQL-u.

SQLite
... The LIKE operator is not case sensitive and will match upper case characters on one side against lower case characters on the other. (A bug: SQLite only understands upper/lower case for 7-bit Latin characters. Hence the LIKE operator is case sensitive for 8-bit iso8859 characters or UTF-8 characters. For example, the expression 'a' LIKE 'A' is TRUE but 'æ' LIKE 'Æ' is FALSE...
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.infonova.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: select - case sensitive09.12.2005. u 10:57 - pre 204 meseci
Nisam nikad radio sa SQLlite-om, ali da mozda pokusas ovako:
"SELECT * FROM baza WHERE lower(f_decode(naziv)) LIKE '%"+lower(cTxt)+"%';"

Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

majak

Član broj: 3735
Poruke: 120
*.vdial.verat.net.



Profil

icon Re: select - case sensitive09.12.2005. u 11:08 - pre 204 meseci
Citat:
StRiPy: Nisam nikad radio sa SQLlite-om, ali da mozda pokusas ovako:
"SELECT * FROM baza WHERE lower(f_decode(naziv)) LIKE '%"+lower(cTxt)+"%';"


f_decode() je moja korisnicka funkcija (UDF) pa nisam siguran da li je predlozeni nacin moguc.
Probacu.
 
Odgovor na temu

majak

Član broj: 3735
Poruke: 120
*.vdial.verat.net.



Profil

icon Re: select - case sensitive09.12.2005. u 11:39 - pre 204 meseci
Nije moguce na navedeni nacin!
Kako bi resio problem na bazi sa kojom si radio?
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.infonova.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: select - case sensitive09.12.2005. u 12:24 - pre 204 meseci
Pa onako isto, samo bez f_decode.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

majak

Član broj: 3735
Poruke: 120
*.vdial.verat.net.



Profil

icon Re: select - case sensitive09.12.2005. u 12:49 - pre 204 meseci
Ja te ocigledno ne razumem :(

Pretpostavimo da hocu da izdvojim sve slogove gde se pojavljuje rec 'rasejana'
(i Rasejana, RASEJANA ili RasEjana)

U bazi je rec 'rasejana' na primer u obliku 'Ÿ†OCŠ’††' a 'RasEjana' nesto sasvim
deseto jer funkcija za kodiranje ne radi po istom algoritmu za mala i velika slova
pa jos razlicito i ako naleti na parni ili neparni karakter.

Kako gornji hijeroglifi ne podrzavaju lower dakle preostaje da se kod prvo
desifruje pa tek onda uporedi sa zadatim stringom, ili nisam u pravu.

Dakle to me zanima.

Ili ja ne umem predstavim problem, ili ne vidim sta zelis da mi pokazes :(
POkusaj ponovo, molim te.

Pozdrav.
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.infonova.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: select - case sensitive09.12.2005. u 13:53 - pre 204 meseci
Ne znam da li SQLlite podrzava UDF, ali zar ne bi trebalo moci onako, kako sam vec napisao? Koju gresku ti javi kada koristis ovaj upit:
"SELECT * FROM baza WHERE lower(f_decode(naziv)) LIKE '%"+lower(cTxt)+"%';" ?
Sta javi upit: SELECT LOWER(f_decode(naziv)) FROM tabela;

Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: select - case sensitive09.12.2005. u 20:56 - pre 204 meseci
Lepo ti je Stripy rekao, ako sifrujes (f_code()) te podatke valjda imas i funkciju koja ih desifruje u prvobitni oblik (f_decode()) . Posto ne mozes da radis LIKE sa sifrovanim vrednostima moras prvo da desifrujes sve slogove u tabeli i da onda radis pretragu sa nefirovanim vrednostima. Sve mi se cini (u nedostatku boljeg pasulja) da ti imas problem sa kodnim rasporedom teksta u bazi pa da zbog toga ne mozes da cuvas podatke u originalu.
Owl
 
Odgovor na temu

majak

Član broj: 3735
Poruke: 120
*.vdial.verat.net.



Profil

icon Re: select - case sensitive12.12.2005. u 09:08 - pre 204 meseci
Citat:
StRiPy: Ne znam da li SQLlite podrzava UDF, ali zar ne bi trebalo moci onako, kako sam vec napisao? Koju gresku ti javi kada koristis ovaj upit:
"SELECT * FROM baza WHERE lower(f_decode(naziv)) LIKE '%"+lower(cTxt)+"%';" ?
Sta javi upit: SELECT LOWER(f_decode(naziv)) FROM tabela;


Evo tek sada (bio na putu)

"SELECT Naziv FROM tabela;" vraca 14000 slogova
"SELECT lower(Naziv) FROM tabela;" vraca 14000 slogova
"SELECT f_decode(Naziv) FROM tabela;" vraca 0 slogova
"SELECT lower(f_decode(Naziv)) FROM tabela;" vraca 0 slogova

Sada pretpostavljam da SQLite ne podrzava UDF i da u konkretnom slucaju
ne mogu naci elegantno resenje problema.

Hvala na pomoci i razumevanju.

 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.infonova.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: select - case sensitive12.12.2005. u 09:58 - pre 204 meseci
SQLite podrzava user-defined funkcije. Evo kako se one kreiraju npr. u PHP-u:
http://www.php.net/sqlite_create_function

Kada USPJESNO kreiras UDF, probaj onda izvrsiti gorespomenute upite...
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

majak

Član broj: 3735
Poruke: 120
213.244.197.*



Profil

icon Re: select - case sensitive14.12.2005. u 07:57 - pre 204 meseci
Uf, nista ne gledam.
Hvala puno.

[Ovu poruku je menjao majak dana 14.12.2005. u 08:58 GMT+1]
 
Odgovor na temu

[es] :: Baze podataka :: select - case sensitive

[ Pregleda: 3884 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.