MySQL триггер для замены определенных символов при вставке - PullRequest
0 голосов
/ 12 января 2019

мне нужно заменить некоторые символы альтернативами при вставке в таблицу, чтобы быть более конкретным, я хочу очистить турецкие символы, такие как "Ç Ş İ Ğ Ü Ö" при вставке. Я могу сделать это с помощью PHP перед вызовом процедуры вставки, но интересно, можно ли это сделать с MySQL Trigger.

Я нашел этот пример MySQL Trigger, чтобы изменить вставленный текст и отредактировал в соответствии с моими потребностями, но когда я попытался, понял, что он меняет только одну букву, а другие остаются такими же, например, у меня есть Строка типа «ŞARŞAMBADAN ÇARŞAMBAYA» меняется на «CARSAMBADAN ÇARŞAMBAYA», поскольку вы видите, что она заменяет первый «Ç», а другой символ остается.

Можно ли заменить определенные символы альтернативами с помощью MySQL Trigger?

delimiter |
CREATE TRIGGER replace_tr BEFORE INSERT ON isimler
FOR EACH ROW
BEGIN
    IF NEW.Body LIKE '%Ç%' THEN 
       SET NEW.Body = '' ;
    END IF;
END
|
delimiter ;

1 Ответ

0 голосов
/ 12 января 2019

Вы можете использовать серию назначений, используя replace() для замены символов.

...
BEGIN
  SET new.body = replace(new.body, 'Ç', 'C');
  ...
  SET new.body = replace(new.body, 'Ö', 'O');
END;
...
...