lidotajs Posted January 21, 2009 Report Share Posted January 21, 2009 Ar php palīdzību uztaisu kveriju, $q ="SELECT * FROM tabula WHERE txt LIKE '%ābols%'". Izpildot šādu kveriju būtu jāparādās visiem ierakstiem, kuros ir frāze ābols. Problēma ir tāda, ka man parādās arī ieraksti, kur frāze ir abols (bez garumzīmes) un otrādi. Kā novērst šādu efektu? Ja ir kādam kādas idejas, lūdzu padalieties. Link to comment Share on other sites More sharing options...
kechums Posted January 21, 2009 Report Share Posted January 21, 2009 Šķiet, ka vajag norādīt enkodingu, lai kverijs atšķirtu visus simbolus, tagad nolasa tikai "abols", bez mīkstinājumiem un citiem šitiem. SET NAMES utf8 Link to comment Share on other sites More sharing options...
Grey_Wolf Posted January 21, 2009 Report Share Posted January 21, 2009 (edited) Šķiet, ka vajag norādīt enkodingu, Nee Set NAMES neko nedos ... Diemzeel Mysql 4.xxx versijas sajaa zinjaa ir padumjas :( Iebuuvetais Latvieshu valodas UTF-8 meklesanas enkodings (atseviskjs fails) ir stipri vien nepilniigs ... Sava laikaa tiku vinju labojis un papildinajis ... P.S. ka vienmer Nav noradiits ne DB serveria versija ne siikak pateiksts kas un kaa ... Edited January 21, 2009 by Grey_Wolf Link to comment Share on other sites More sharing options...
lidotajs Posted January 22, 2009 Author Report Share Posted January 22, 2009 Piedodiet: Izmantoju MySQL 5.0, kodējums utf8. Pagaidām laikam vienīgais variants labot to utf-8 enkoding failu. Link to comment Share on other sites More sharing options...
Grey_Wolf Posted January 22, 2009 Report Share Posted January 22, 2009 (edited) a kaads kodejums tev noraadiits pasai tabulai VAI tabulas kollonai ?? Sakot ar 4.1.xx var noraadiit preciizu kodejumu tabulu kasa tiks izmantota meklesanai ( un netikai ) Skaties peec Colation , ( 4.xx taas cl_latvian bija pabriesmiigs ... ) CREATE TABLE `rrr` ( `id` INT NOT NULL AUTO_INCREMENT , `tekstcc` TEXT CHARACTER SET utf8 COLLATE utf8_latvian_ci NOT NULL , PRIMARY KEY ( `id` ) ) TYPE = MYISAM ; P.S. pasam uz lokalaas stav 4.1.xx taa kaa nevaru parbaudiit .. bet nu risinajuma virziens ir saads... Edited January 22, 2009 by Grey_Wolf Link to comment Share on other sites More sharing options...
lidotajs Posted January 22, 2009 Author Report Share Posted January 22, 2009 (edited) Man visur ir salikts utf8_latvian_ci. Bet tagat rakņājoties pa MySQL uzraku šādu lietiņu kā REGEXP. Vēl pagaidām neesmu iebraucis ar ko atšķirās LIKE no REGEXP, bet liekas ka strādā. Vienīgi man neder jo REGEXP māk atšķirt lielos burtus no mazajiem. Edited January 22, 2009 by lidotajs Link to comment Share on other sites More sharing options...
Grey_Wolf Posted January 22, 2009 Report Share Posted January 22, 2009 (edited) Vienīgi man neder jo REGEXP māk atšķirt lielos burtus no mazajiem. Ja meklejama tabula nav liela tad ir risinajums: Parveido gan meklejamo , gan tabulas datus uz apakseejo VAI augsejo registru --> tas ir lai abaas pusees buutu vienaads registrs edit: domats meklesanas laikaa, tas ir iekljau to pasaa SELECT WHERE klauzaa... Edited January 22, 2009 by Grey_Wolf Link to comment Share on other sites More sharing options...
lidotajs Posted January 22, 2009 Author Report Share Posted January 22, 2009 (edited) kamēr rakstiju postu, atbilde arī parādijās :-) Today, 12:17 Varbūt es murgoju. bet tomēr, ja pēkšņi var izmantot REGEXP, tad: $q ="SELECT * FROM tabula WHERE LOWER(txt) REGEXP LOWER('ĀBols')"; Šāds variants strādā, bet gan nezinu cik ilgs laiks ir nepieciešams, lai šādu brīnumu apstrādātu. Ātrums ir svarīgs jo tabulā būs ap simts tūkstošiem ierakstu, un txt lauka garums ap 2 tūkstoži zīmju. Ko sakat par šo? Edited January 22, 2009 by lidotajs Link to comment Share on other sites More sharing options...
Grey_Wolf Posted January 22, 2009 Report Share Posted January 22, 2009 Ātrums ir svarīgs jo tabulā būs ap simts tūkstošiem ierakstu, un txt lauka garums ap 2 tūkstoži zīmju. nu tad vispar nevajag izmantot %LIKE% bet mekleet citus risinajumus, jo pat neparveidojot Registru viss buus sameeraa lens .. Skaties Uz FULLtext Pusi .. Link to comment Share on other sites More sharing options...
lidotajs Posted January 23, 2009 Author Report Share Posted January 23, 2009 paldies, cenšos tagad tajā iebraukt Link to comment Share on other sites More sharing options...
Recommended Posts