我有一个 PostgreSQL 数据库,其条目如下所示:
twitter_name unnest
apple flower
apple bug
banana bug
BANana flower
bAnana leaf
这个想法是创建一个网络,其中所有条目都是节点,并且 column1-nodes 连接到 column2 节点。很明显,“香蕉”节点区分大小写,在创建网络时,我最终得到了三个不同的节点,而不仅仅是一个“香蕉”节点。
无论如何要改变这个?我想也许可以使用 RegEx 重命名和合并,但我不太确定。
我用来获取此表的查询如下:
with cte as (
select u.twitter_name, REGEXP_MATCHES(t.txt, '@([A-Za-z0-9_]+)', 'g') as mentions
from tweet as t, twitter_user as u
where t.author_id = u.id
)
select twitter_name, unnest(mentions)
from cte;
将不胜感激任何提示!
如果您想“重命名区分大小写的条目”,正如您的帖子标题所说,您可以通过对原始查询进行小的更改来完成,而不是使用正则表达式和合并。
您应该使用 PostgreSQL函数twitter_name
将选择更改为 lowered 的选择,如下所示:twitter_name
LOWER
with cte as (
select u.twitter_name, REGEXP_MATCHES(t.txt, '@([A-Za-z0-9_]+)', 'g') as mentions
from tweet as t, twitter_user as u
where t.author_id = u.id
)
select LOWER(twitter_name), unnest(mentions)
from cte;
鉴于原始查询适用于您的数据,此修复应该允许您获取固定表:
twitter_name | 请 |
---|---|
苹果 | 花 |
苹果 | 漏洞 |
香蕉 | 漏洞 |
香蕉 | 花 |
香蕉 | 叶子 |
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句