如何从MySQL表中删除未知的表情符号字符

问题描述 投票:0回答:1

我想从一个 MySQL 列(即 bike_store_name)中删除所有类型的表情符号字符。列值是包含许多我想删除的不同表情符号的自行车商店的名称。我只想保留商店的实际名称,而不是表情符号。我有超过 5K 条与以下类似的记录。以下是此表列中的内容示例:

🚘 Rent A bicycle Skopelos
🚲 Kairos bicycles
🚴🏻 Beat Bike
🏋 Fitness Equipment Rental Warsaw 
🚲︎ Bicycles Krakow Bicycle Shop
🛴💨 𝗧𝗲𝗮𝗺 𝗲𝗕𝗶𝗸𝗲🔋🚲🛠️
Hsinchu 👼Angel 999❤️ bike dealership

我能够编写一个选择查询来查找表情符号,但即使如此,我也不能 100% 确定它是正确的。它可以运行,但我不确定这是否是查找所有表情符号的最佳方式。这是查询:

SELECT bikeshop_name FROM bsdirectory WHERE HEX(`bikeshop_name`) RLIKE "^(..)*F.";
mysql emoji
1个回答
0
投票

❤️ 由两个表情符号组成,这两个表情符号都未被该正则表达式捕获。 (那个正则表达式看起来像我提议的,你在哪里找到它的;我应该去修复它。)

E29DA4    10084=x2764  [❤]   ON  HEAVY BLACK HEART
EFB88F    65039=xFE0F  [️]  NSM  VARIATION SELECTOR-16

看看这是否有效:

WHERE HEX(bikeshop_name) RLIKE "^(..)*(F.|E2|EF)";

如果遗漏了什么,请告诉我;我将再次破解正则表达式。

帮助我的备忘单:http://mysql.rjweb.org/doc.php/charcoll#diagnosing_charset_issues

我发现正则表达式可能错误地包含一些晦涩的阿拉伯字符。

© www.soinside.com 2019 - 2024. All rights reserved.