在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分钟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值