我在一些MariaDB列中有这个字符串(让我们称之为MY_COL):{"libelle": "com\u00e9dien"}
,我想用{"libelle": "acteur"}
替换它
使用这个STO post,我弄清楚了如何选择包含这个字符串的行:
SELECT MY_COL
FROM MY_TABLE
WHERE MY_COL LIKE '%{"libelle": "com\\\\u00e9dien%'
字符串
但是,当我在UPDATE语句中使用这种“超大转义”技术时,它不起作用
UPDATE MY_TABLE
SET MY_COL = REPLACE(MY_COL, '{"libelle": "com\\\\\\u00e9dien"', '{"libelle": "acteur"')
型
然而,我注意到这个SELECT语句工作得很好:
SELECT '{"libelle": "com\\\\\\u00e9dien"' As `Column_Before`,
REPLACE('{"libelle": "com\\\\\\u00e9dien"', '{"libelle": "com\\\\\\u00e9dien"', '{"libelle": "acteur"') As `Column_After`;
型
的数据
似乎是在REPLACE语句中引用Column_Name导致了这个问题,但我不知道为什么,也不知道如何防止。
最后的信息:表,列和数据库使用UTF8MB4编码与utf8mb4_general_ci排序。
我使用DBeaver(最新版本),MariaDB的版本是10.8.6
1条答案
按热度按时间70gysomp1#
您应该使用proper JSON functions
字符串
如果你有一个这样的对象数组,你可以在一个子查询中取消嵌套它们,修改需要修改的内容,然后重新聚合。
型