Qued Posted October 23, 2006 Report Share Posted October 23, 2006 Moš kāds zina, kā MSSQL apstrādā character? Te uzpeldēja interesanta problēma, ka, piemēram, ja meklē like '%liga%' tad atrod visas Līgas. To jesķ, ignorē garo burtu. Abet ja meklē like '%jelena% tad nevienu Jeļenu neatrod, lai gan datubāzē tādas ir. Wtf, kā to var mainīt? Link to comment Share on other sites More sharing options...
andrisp Posted October 23, 2006 Report Share Posted October 23, 2006 Ko tieši tu gribi mainīt ? Lai meklē vienmēr precīzi vai arī lai meklē vienmēr uz līdzībām ? Ja gribi, lai vienmēr atrod gan 'Ļ', gan 'L' tad var uztaisīt speciālu procedūru/fja MSSQL pusē, kas veic speciālo simbolu konvertēšanu uz ascii. Un pēc tam sql būtu šāds aptuveni (neesmu pāliecināts vai tieši šāds strādās): ...WHERE lv_to_en(lauks) LIKE lv_to_en('%Jeļena%')... Link to comment Share on other sites More sharing options...
Qued Posted October 23, 2006 Author Report Share Posted October 23, 2006 Ko tieši tu gribi mainīt ? Lai meklē vienmēr precīzi vai arī lai meklē vienmēr uz līdzībām ? Es kā reiz gribu, lai meklē tieši to, ko viņam uzdod meklēt. Ja uzdodu meklēt like '%liga%', tad lai meklē Ligas, nevis Līgas. Link to comment Share on other sites More sharing options...
GedroX Posted October 23, 2006 Report Share Posted October 23, 2006 Izmanto PostgreSQL. Nekad nav bijis tāda veida problēmu ar Postgri. Tam UTF-8 ir jau no izseniem laikiem. =) Link to comment Share on other sites More sharing options...
andrisp Posted October 23, 2006 Report Share Posted October 23, 2006 Qued, nu tad varbūt tev ir eneiblots kautkāda veida fuzzy match vai kas tāds ? Link to comment Share on other sites More sharing options...
Qued Posted October 23, 2006 Author Report Share Posted October 23, 2006 (edited) Izmanto PostgreSQL. Nekad nav bijis tāda veida problēmu ar Postgri. Tam UTF-8 ir jau no izseniem laikiem. =) Šas, visu pametīšu un pāriešu uz PostgreSQL. Qued, nu tad varbūt tev ir eneiblots kautkāda veida fuzzy match vai kas tāds ? what? Kas tas ir? Nekas speciāli nav eneiblots vai diseiblots. Imo, kaut kāda figņa ir ar čarsetiem, bet kāda? Pie tam garos burtus ignorē, bet mīkstos ņem vērā. Edited October 23, 2006 by Qued Link to comment Share on other sites More sharing options...
GedroX Posted October 23, 2006 Report Share Posted October 23, 2006 (edited) Tu pat nepieminēji kādu charset tu izmanto. Šas, visu pametīšu un pāriešu uz PostgreSQL.Malacis! =) Bet ja nopietni, es domāju, ka nomainīt datubāzi nav lielas problēmas. Ja php normāli uzrakstīts, protams (normāli == ne caut mysql_ funkcijām, bet caur klasēm). Edited October 23, 2006 by GedroX Link to comment Share on other sites More sharing options...
goldy Posted October 23, 2006 Report Share Posted October 23, 2006 GedroX -> tev viss OK, tu kaut izlasi precīzi ko cilvēks lieto un tad fantazē, un ja ar PostgreSQL radīsies kāda problēma, ko tad, pāriet uz ORACLE vai DB2? Link to comment Share on other sites More sharing options...
GedroX Posted October 23, 2006 Report Share Posted October 23, 2006 (edited) goldy => iekš PostgreSQL problēmu nebūs! =D P.S. Esmu sākumā ņēmies ar MySQL. Kad sākās ņemšanās ar Postgri, sākumā es to ciest nevarēju, bet ātri vien sapratu, ka Postgre RULLZZ DA WORLD! Edited October 23, 2006 by GedroX Link to comment Share on other sites More sharing options...
Roze Posted October 23, 2006 Report Share Posted October 23, 2006 Btw tas tiek darīts no PHP un caur kādu clientu? FreeTDS? Vai konkrētais kverijs analogi izpildās arī piemēram no MS Enterprise sql managera? Var paprovēt iekš freetds.conf pie konkrēta servera pielikt: client charset = UTF-8 P.S. Esmu sākumā ņēmies ar MySQL.Nejauc MS SQL ar MySQL :) Link to comment Share on other sites More sharing options...
GedroX Posted October 23, 2006 Report Share Posted October 23, 2006 Nejauc MS SQL ar MySQL :) He! To gan es nepamanīju. =P Ceru, ka ar MsSQL nenāksies strādāt. Link to comment Share on other sites More sharing options...
h23 Posted October 23, 2006 Report Share Posted October 23, 2006 Šas, visu pametīšu un pāriešu uz PostgreSQL. Vecais, nepadodies! Izkod šito problēmu līdz saknei, savādāk, kad radīsies problēma ar postgri (kas notiks ļoti ātri) atkal bēgsi uz citu DB?!?! Tādā veidā var aptrūkties DBVS :D Link to comment Share on other sites More sharing options...
Qued Posted October 23, 2006 Author Report Share Posted October 23, 2006 (edited) Btw tas tiek darīts no PHP un caur kādu clientu? FreeTDS? Vai konkrētais kverijs analogi izpildās arī piemēram no MS Enterprise sql managera? Analogi izpildās arī no Query Analyzer'a. Profilerī rādās tāpat kā ievadīts. Mysqlā koļēgam bija ļoti līdzīga problēma, tur šis uztaisīja workaround'u sqlā konvertējot stringiem čarsetu uz cp1257_bin vai kaut kā tamlīdzīgi. Vecais, nepadodies Kamōn, es tak pajokoju par to postgresql. Man te mssqls visam pasākumam dzimtā vide :) Edited October 23, 2006 by Qued Link to comment Share on other sites More sharing options...
DarkSide Posted October 26, 2006 Report Share Posted October 26, 2006 Moš kāds zina, kā MSSQL apstrādā character? Te uzpeldēja interesanta problēma, ka, piemēram, ja meklē like '%liga%' tad atrod visas Līgas. To jesķ, ignorē garo burtu. Abet ja meklē like '%jelena% tad nevienu Jeļenu neatrod, lai gan datubāzē tādas ir.Man tāda pati problēma. Lietoju visur UTF8 kodējumu, un dažus latviešu burtus MySQL atšķir no parastajiem, bet dažus nē... Problēmu neesmu vēl atrisinājis, jo iestāstīju klientam, ka tā ir mana projekta fīča nevis bugs :))) Link to comment Share on other sites More sharing options...
GedroX Posted October 26, 2006 Report Share Posted October 26, 2006 MySQL var mēģināt lietot ..LIKE BINARY.. vienkāršā LIKE vietā. Nezinu, vai tāds paņēmiens eksistē iekš MsSQL. Vienīgais cons ir tāds, ka meklēšana kļūs case sensitive. Nāksies visus tekstus pārveidot uz mazajiem burtiem. Link to comment Share on other sites More sharing options...
Recommended Posts