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...