string equal, equali - real time exact comparision

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Tetusis

Re: string equal

Post by Tetusis »

beast wrote:Pats bent bandai išsiaiškint? Ar lauki kol kiti padarys? Pora min paieškojau: http://dev.mysql.com/doc/refman/5.0/en/ ... ind-in-set Aišku spėju, kad vis tiek nemokėsi prisitaikyt pagal save...
Dekui uz atsakyma, prisitaikyt nera sunku, kiti uz mane padarys? blogai supratai, laukiu patarimu is tikrai patyrusiu, nusimananciu zmoniu, taip kad liecia MYSQL neturiu stipriu ziniu, ieskoti googleje nera problema, bet infomacija reikia atsirinkti tame ir esme... Isbandziau taip pat IS NOT, nepadejo stai kaip atrodo mano query

Code: Select all

UPDATE `asdftable` SET CLIENT_NAME = CONCAT(CLIENT_NAME, ^", %s^") WHERE CLIENT_IP = '%s' OR CLIENT_AUTH = '%s'
Dabar konkretus klausimas, tai kaip padaryti tikrinima jei tai imanoma paciame query su concat? :)

User avatar
beast
AMX Mod X ekspertai
Posts: 509
Joined: 2011 Jan 08 18:44
Skype: thefurious4
Contact:

Re: string equal

Post by beast »

Code: Select all

UPDATE `asdftable`SET CLIENT_NAME = CASE                      WHEN FIND_IN_SET('%s',CLIENT_NAME) > 0 THEN CLIENT_NAME                      ELSE CONCAT(CLIENT_NAME, ^", %s^")                  ENDWHERE CLIENT_IP = '%s' OR CLIENT_AUTH = '%s'
Neturiu kur patestuot. Bet visų pirma, tau reikia pasiredaguoti CLIENT_NAME, kad nebūtų tarpų prieš ir po kablelių, nebent įterptas nickas buvo su tarpais.

Tetusis

Re: string equal

Post by Tetusis »

beast wrote:

Code: Select all

UPDATE `asdftable`SET CLIENT_NAME = CASE                      WHEN FIND_IN_SET('%s',CLIENT_NAME) > 0 THEN CLIENT_NAME                      ELSE CONCAT(CLIENT_NAME, ^", %s^")                  ENDWHERE CLIENT_IP = '%s' OR CLIENT_AUTH = '%s'
Neturiu kur patestuot. Bet visų pirma, tau reikia pasiredaguoti CLIENT_NAME, kad nebūtų tarpų prieš ir po kablelių, nebent įterptas nickas buvo su tarpais.
Dekui ,bet veikia kaip

Code: Select all

UPDATE `%s` SET CLIENT_NAME = CASE WHEN STRCMP(^"%s^", CLIENT_NAME) != -1 THEN CLIENT_NAME ELSE CONCAT(CLIENT_NAME, ^", %s^") END WHERE CLIENT_IP = '%s' OR CLIENT_AUTH = '%s'
ir kiti panasus variantai, taip pat bandziau begales kitu algoritmu, atrodo testinau visas mysql funkcijas kas liecia tai. Manau pasiduosiu su sia atpazinimo sistema. +rep uz pagalba. Siaip planavau pradzioje atpazinima sukurti kas liecia ip auth dabar supratau, kad tai nesaugu net su name history, jei kas netycia rastu algoritma kuris palygintu dabartini atnaujinama rezultate su esamais string'e pries atnaujinant tiksliai pvz jei yra rezultatai jau duomenu bazeje:
"t, test, test this, this is test, TeSt"
ir dabar tarkim vyksta palyginimas su nauju atnaujinamu rezultatu
"TEst arba T"
, turetu atnaujinti kadangi nei vienas is ju nesutapo su esamais..

Dar vienas pavizdys, turime jau esamus ip rezultatus duomenu bazeje
"143.231.32.2, 143.231.32.3, 143.231.33.2"
na ir vel gi vyksta palyginimas su nauju atnaujinamu rezultatu
"143.231.32.3"
turetu neatnaujinti kadangi jau sis rezultatas jau yra duomenu bazeje. Su ip aisku mistika tai viskas gerai, tai blogai, mistika man asmeniskai, buvo testuojama su high traffic serveriu, radau gana ne viena duplikata...

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 3 guests