Hello! 欢迎来到小浪资源网!


如何高效删除两张表中编码类似但不同的utf8mb4数据?


如何高效删除两张表中编码类似但不同的utf8mb4数据?

删除两张表中相似的utf8mb4编码数据

如何在两张表中删除使用utf8mb4编码的数据,其中数据可能包含类似但不同的字符?

具体问题:

  • 表 t1 和 t2 分别具有字段 id 和 username。
  • 第一个表中包含一条用户名为 “cǒcǒ” 的数据和一条用户名为 “coco” 的数据。
  • 第二个表中包含一条用户名为 “cócǒ” 的数据。
  • 需要使用 utf8mb4 校对集删除两张表中的所有用户名包含 “coco” 的数据。

解决方案:

按照 delete 语句的多表语法,可以执行以下查询:

DELETE FROM t1, t2 WHERE convert(t1.username USING utf8mb4) = convert(t2.username USING utf8mb4);

此查询将在两个表中都删除用户名包含 “coco” 的所有数据,即使它们在不同的字符编码下可能看起来相似。

相关阅读