我正在使用与表情符号相关的SQL,使用github(https://github.com/emojione/emojione/releases/tag/4.0.0)上表情符号版本的数据。
表情符号具有unicode值-例如“城堡” = 1f3f0。
很多表情符号都有肤色变化-例如-人攀爬()= 1f9d7,但是还有5种肤色变化:
1f3fb
1f3fc
1f3fd
1f3fe
1f3ff
肤色变化由unicode值的1f3fb部分表示,并可以如上显示-在该表情符号的初始标识符之后,或者有时可以夹在unicode值的两段之间-例如,man -mechanic()的unicode值为1f468-1f527,但随后的肤色unicode值如下:
1f3fb
-1f527 1f3fc
-1f527 1f3fd
-1f527 1f3fe
-1f527 1f3ff
-1f527 我正在尝试编写一些SQL来识别那些肤色变化的表情符号。
这是一些示例数据:
select my_data.*
from (select '1f468-1f9b3' unicode_value union all
select '1f468-1f3fb-1f9b3' union all
select '1f468-1f3fc-1f9b3' union all
select '1f468-1f3fd-1f9b3' union all
select '1f468-1f3fe-1f9b3' union all
select '1f468-1f3ff-1f9b3' union all
select '1f474' union all
select '1f474-1f3fb' union all
select '1f474-1f3fc' union all
select '1f474-1f3fd' union all
select '1f474-1f3fe' union all
select '1f474-1f3ff' union all
select '1f98d' union all
select '1f40a' union all
select '1f1fc-1f1f8') my_data;
鉴于以上示例数据,有什么方法可以隐式地返回这些:
因为它们是唯一具有5种肤色变化的记录,这些记录在unicode值的第一段之后立即出现?
如果不编写函数或进行一些复杂的操作,或者将SQL与PHP之类的脚本语言结合起来,可能无法实现这一目标,但是我想在这里问一下。
答案 0 :(得分:0)
SELECT UNHEX('F09F91A8E2808DF09F94A7');
F09F91A8
=男人
E2808D
=零宽度连接符
F09F94A7
=机械师
一些参考文献:
http://unicode.scarfboy.com/?s=1f3fd
https://codepoints.net/U+1f3fd
http://www.fileformat.info/info/unicode/char/1f3fd/index.htm
对于UTF-8,MySQL比对Unicode代码点更友好。