taai Posted January 24, 2007 Report Share 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%' Link to comment Share on other sites More sharing options...
rpr Posted January 24, 2007 Report Share 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. Link to comment Share on other sites More sharing options...
andrisp Posted January 24, 2007 Report Share 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) Link to comment Share on other sites More sharing options...
bubu Posted January 24, 2007 Report Share 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). Link to comment Share on other sites More sharing options...
taai Posted January 25, 2007 Author Report Share 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... Link to comment Share on other sites More sharing options...
andrisp Posted January 25, 2007 Report Share Posted January 25, 2007 SELECT * FROM `tabula` WHERE LOWER(lauks) = LOWER($mainiigais_no_php) Link to comment Share on other sites More sharing options...
taai Posted January 25, 2007 Author Report Share 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? Link to comment Share on other sites More sharing options...
taai Posted January 28, 2007 Author Report Share 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 ;) Link to comment Share on other sites More sharing options...
andrisp Posted January 29, 2007 Report Share Posted January 29, 2007 Pag, tad jau tev utf-8 vispār nestrādāja iepriekš ? Link to comment Share on other sites More sharing options...
taai Posted February 3, 2007 Author Report Share Posted February 3, 2007 Nevajag taisīt muļķīgas QUOTEs (bubu) Tieši tā... Link to comment Share on other sites More sharing options...
andrisp Posted February 3, 2007 Report Share 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 :). Link to comment Share on other sites More sharing options...
Recommended Posts