MariaDB / MySQL: замена символа юникода другим не работает (затронуто 0 строк) - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь заменить каждое вхождение символа Unicode "ЗНАК МИНУСЫ" (U + 2212) на 'HYPHEN-MINUS' (U + 002D) в столбец.

Я пробовал различные варианты команд UPDATE..REPLACE, например:

UPDATE assets 
SET 
    asset_tag = REPLACE(asset_tag,
        concat("%", unhex('e28892'), "%"),
        concat("%", unhex('2d'), "%"))
WHERE
    asset_tag like concat("%", unhex('e28892'), "%");

Все дают одинаковый результат:

Query OK, 0 rows affected (0.00 sec)
Rows matched: 412  Changed: 0  Warnings: 0

Кодировка таблицы DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

Что я делаю не так?Я использую клиент командной строки.

Спасибо!

1 Ответ

0 голосов
/ 15 февраля 2019

Вам не нужно '%' в REPLACE.Так что просто сделайте свою функцию замены следующим образом: REPLACE(assert_tag, unhex('e28892'), unhex('2d'))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...