【问题标题】:How to query only the data that has emojis (postgresql)如何仅查询具有表情符号的数据(postgresql)
【发布时间】:2021-02-11 15:27:00
【问题描述】:

我的数据在数据库列中包含表情符号,即

message_text
-------
????
????
Hi ????

我只想查询包含表情符号数据的行。在 postgres 中是否有一种简单的方法可以做到这一点?

select data from table where data_col contains emoji

目前我使用一个简单的查询

select message_text from cb_messages_v1 cmv
 where message_text IN ('????????','????','????','????', '????')

但我希望它更具动态性,如果添加未来的情绪,它将捕获数据。

【问题讨论】:

  • 与搜索包含单个字符“A”或“B”或...的文件相同的方法试试这个:stackoverflow.com/questions/12957993/…
  • @O-9 这很有帮助,但是如果引入了新的表情符号字符怎么办?我将不得不更新我的代码并包含它。有没有办法做到这一点,而不必对所有可能的表情符号列表进行硬编码?

标签: postgresql emoji


【解决方案1】:

从您的示例看来,您不仅对 表情符号 (U+1F601 - U+1F64F) 感兴趣,而且对 Miscellaneous Symbols And Pictographs (U+ 1F300 - U+1F5FF) 和交通和地图符号 (U+1F680 - U+1F6C5)。

您可以找到包含其中之一的值

WHERE textcol ~ '[\U0001F300-\U0001F6FF]'

~是正则表达式匹配运算符,模式是Unicode字符范围。

【讨论】:

  • 哇哦...好简单。不再需要我的冗长回答了:D 谢谢,吸取了教训。
  • 你会不会碰巧知道如何在 python 中做同样的事情?
  • 就这样 - SQL 就是 SQL。
  • 仅供参考,这并不支持所有表情符号。例如,正则表达式未检测到标志表情符号。
  • @pir 好吧,these 是。但我想这是一个移动的目标。我已将范围扩大到 1F6FF。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 2020-08-18
  • 2020-10-19
相关资源
最近更新 更多