在Greenplum(PostgreSQL)表中查询出所有包含emoji符号的数据

Posted wzy0623

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Greenplum(PostgreSQL)表中查询出所有包含emoji符号的数据相关的知识,希望对你有一定的参考价值。

1. 从以下地址复制emoji的unicode
https://unicode.org/emoji/charts/full-emoji-list.html

2. 建立字典表

create table emoji_unicode(c varchar(10));
copy emoji_unicode from '/data/emoji_unicode.txt';

alter table emoji_unicode add column e varchar(10);
update emoji_unicode set e=chr(cast(cast(('x' || c) as bit(16)) as int));

select * from emoji_unicode;
   c   | e 
-------+---
 2755  | ❕
 1F43B | ὃ
 1F450 | ὅ
 1F9B5 | ᾛ
 1F1FC | ἟
 1F34B | ἴ
 1F1F9 | ἟
 1F693 | Ὡ
 1F355 | ἵ
 23EC  | ⏬
 ......
 1F004 | ἀ
 1FAB0 | ᾫ
 1F63A | ὣ
 1F532 | ὓ
 1F606 | ὠ
 1F982 | ᾘ
 1F35F | ἵ
 1F995 | ᾙ
 1F646 | ὤ
 1FAC5 | ᾬ
(1432 rows)

3. 查询测试

-- 源数据
SELECT x.content FROM x WHERE CommentID in (39539523,39205786);
 
-- 关联查询
SELECT distinct x.content FROM x, emoji_unicode 
 WHERE CommentID in (39539523,39205786) and x.content like '%'||e||'%';

结果如下:

        字典表关联一个四千二百万行的评论表,其中评论字段 content 数据类型为 varchar(6000),查询出所有带 emoji 的评论,用时25分钟。

以上是关于在Greenplum(PostgreSQL)表中查询出所有包含emoji符号的数据的主要内容,如果未能解决你的问题,请参考以下文章

Greenplum:基于 PostgreSQL 的分布式数据库内核揭秘

如何在 PostgreSQL 8.2(用于 Greenplum)中找到死元组(碎片)?

在 Greenplum/Postgresql 数据库上使用 java 驱动程序创建序列不起作用

PostgreSQL和GreenPlum比较

无法从 Windows 上的 pgadmin 连接到 greenplum postgresql

GreenPlum/PostgreSQL 创建函数返回数据集