MariaDB / MySQL:将Unicode字符替换为另一个字符不起作用(影响0行)

时间:2019-02-15 11:40:16

标签: mysql unicode mariadb

我正尝试将所有出现的Unicode字符"MINUS SIGN" (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 :(得分:1)

您不需要'%'中的REPLACE。因此,只需使您的替换功能如下:REPLACE(assert_tag, unhex('e28892'), unhex('2d'))