mysql - 玛丽亚数据库/MySQL : replacing an unicode character by another one doesn't work (0 rows affected)

标签 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

我做错了什么?我正在使用命令行客户端。

谢谢!

最佳答案

REPLACE 中不需要'%'。所以只需像这样制作您的替换函数:REPLACE(assert_tag, unhex('e28892'), unhex('2d'))

关于mysql - 玛丽亚数据库/MySQL : replacing an unicode character by another one doesn't work (0 rows affected),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54708566/

相关文章:

mysql - 为什么 ifnull() 在 MariaDB 10.1+ 中返回 DECIMAL 而不是 BIGINT?

php - 在 Laravel get() 查询生成器中附加两个数组

python - 如何从 MZ 可执行文件中提取 Unicode 字符序列?

objective-c - 为什么相同的 Unicode 字符具有不同的整数值,反之亦然?

mysql - 简单的选择查询在具有大数据集 10M 的 mysql 表中花费太多时间

php - 是 LIKE,但 int 表示应检查的字符串

php - 从 foreach 循环 + mysql while 循环获取总计

php - 通知: Array to string conversion when including variable in query

python - 如何从数据库中检索列名

android - 如何使用 Android 自定义键盘一次输入 2 个字符