taai Posted January 24, 2007 Report Posted January 24, 2007 Problēma tāda, ka meklējot 'janis' neatrod vārdu 'Jānis'. Izmantoju MySQL tabulu, kurai uzstādīts utf8 kodējums un ir BLOB lauks. Gribētos, lai varētu meklēt gan 'janis' gan 'jānis' gan 'Jānis', pat 'jAnIs'. Kādam vajadzētu būt pieprasījumam, lai atrisinātu šo problēmu? Paraugs (problēma pastāv): SELECT tekstalauks FROM tabula WHERE tekstalauks LIKE '%janis%'
rpr Posted January 24, 2007 Report Posted January 24, 2007 to nav iespeejams veikt ar vienu selektu, ja nu vieniigi pirms saglabaat tekstu, tu to pats jau apstraadaa, lai tas buutu visos tev nepiecieshamajos veidos.
andrisp Posted January 24, 2007 Report Posted January 24, 2007 http://laacz.lv/blog/2006/12/28/mysql-un-utf8/ Vari arī izveidot fju, kas mysql pusē visus spec. simbolus pārvērš par parastajiem. Tad būtu: SELECT * FROM `tabula` WHERE tava_fja(lauks) = tava_fja($mainiigais_no_php)
bubu Posted January 24, 2007 Report Posted January 24, 2007 Tev tak neteica komentēt pie tā bloga ieraksta :) Tev pateica, kur meklēt tavu atbildi. Izlasi laacz'a blogā tak to ierakstu, tur ir aprakstīts tavas problēmas risinājums. Ja nesaproti, kas tur sarakstīts, tad šķir vaļā manuāli un meklē tajā rakstā izmantotos keywordus (ALTER TABLE, CHARACTER SET, utt).
taai Posted January 25, 2007 Author Report Posted January 25, 2007 Tev tak neteica komentēt pie tā bloga ieraksta :) Tev pateica, kur meklēt tavu atbildi. Izlasi laacz'a blogā tak to ierakstu, tur ir aprakstīts tavas problēmas risinājums. Ja nesaproti, kas tur sarakstīts, tad šķir vaļā manuāli un meklē tajā rakstā izmantotos keywordus (ALTER TABLE, CHARACTER SET, utt). Laacz ir pietiekami populārs, lai arī es par viņu zinātu. Esmu lasījis to rakstu un izdarījis to, kas rakstā bija rakstīts, taču man līdz galam neizdodas, tāpēc meklēju papildus palīdzību šeit... Meklēšana izdodas, bet tikai tiešajā sakritībā, taču vajadzētu, lai varētu meklēt, izmantojot arī vienkārši latīņu burtus, lielos un mazos burtus...
andrisp Posted January 25, 2007 Report Posted January 25, 2007 SELECT * FROM `tabula` WHERE LOWER(lauks) = LOWER($mainiigais_no_php)
taai Posted January 25, 2007 Author Report Posted January 25, 2007 Nevajag taisīt muļķīgas QUOTEs (bubu) Nope. Diemžēl LOWER nepalīdz. Ja tomēr ievēro lielos un mazos burtus, tad atrod, ja nav latviešu burti. Vai ir kāds, kam viss sanāk?
taai Posted January 28, 2007 Author Report Posted January 28, 2007 Oki! Problēmu atrisina 'mysql_query("SET NAMES utf8");', kas skriptā ielikts uzreiz pēc 'mysql_connect'. ;) Lietojam utf8 un baudam dzīvi ;)
andrisp Posted January 29, 2007 Report Posted January 29, 2007 Pag, tad jau tev utf-8 vispār nestrādāja iepriekš ?
taai Posted February 3, 2007 Author Report Posted February 3, 2007 Nevajag taisīt muļķīgas QUOTEs (bubu) Tieši tā...
andrisp Posted February 3, 2007 Report Posted February 3, 2007 Tad uzreiz būtu tā teicis, un tad tev šis risinājums būtu uzreiz jau pirmais pateikts. A tu par kaut kādām meklēšanām sūdzies :).
Recommended Posts