数据库移除0宽字符

我们数据库明明存储的是 客户名称, 但是代码取出来,json打印一下,变成了 <U+200C>客户名称

则说明存在了0宽字符,不影响 select ... where xxx=x,的使用。

如何确认?

转化成16进制,它就能显形,查 HEX 前缀确认是不是 E2808C(U+200C 的 UTF-8 编码),再结合其它辅助字段如 gmt_create / creator_id 就能锁定是谁、什么时候建的。

sql 复制代码
  SELECT id, customer_code, HEX(LEFT(customer_name, 6)), creator_id, gmt_create
  FROM customer_info
  WHERE id = 123456);

如何修复?

转化成16进制,将其replace成空

sql 复制代码
  UPDATE customer_info
  SET customer_name = REPLACE(customer_name, UNHEX('E2808C'), '')
  WHERE customer_name LIKE CONCAT(UNHEX('E2808C'), '%');
相关推荐
wei_shuo1 小时前
SQL 高级特性实战:窗口函数、JSONB 与多数据库兼容完全指南
数据库·kingbasees
XZ-0700012 小时前
MySQL—B+树构建
数据库·b树·mysql
XZ-0700012 小时前
MySQL-聚簇索引
数据库·mysql
qq_185198692 小时前
ruoyi框架中配置minio
数据库
Access开发易登软件2 小时前
Access 用 VBA 操作 SQLite,不用装任何驱动
jvm·数据库·sqlite·vba·access·access开发
字节跳动数据库2 小时前
火山引擎 Milvus 发布官方 CLI + Skill ,终端与对话双通道掌控向量数据库
数据库·人工智能
夜白宋2 小时前
【Redis深入】一、快的原因
数据库·redis·缓存
念越2 小时前
【数据库系统概论期末复习】 绪论重点与常考题重点与常考题整理第一章
数据库·数据库系统概论
SXJR2 小时前
langchain4j是如何保证tools或者funcation call不出错的
java·网络·数据库·ai·语言模型