Я работаю над некоторым SQL, связанным с эмодзи, используя данные из выпуска emojione на github (https://github.com/emojione/emojione/releases/tag/4.0.0).
Смайликам присваивается значение в Unicode - например, "замок" castle = 1f3f0.
Многие эмодзи имеют вариации тона кожи - например, человек, поднимающийся (climbing) = 1f9d7, но также имеют 5 вариаций тона кожи:
- ?? - 1f9d7-
1f3fb
- ?? - 1f9d7-
1f3fc
- ?? - 1f9d7-
1f3fd
- ?? - 1f9d7-
1f3fe
- ?? - 1f9d7-
1f3ff
Изменение тона кожи обозначается частью 1f3fb значения Юникода и может отображаться, как указано выше - после начального идентификатора для этого смайлика, или иногда может быть зажато между двумя сегментамизначения Unicode - например, man-mechanic (??) имеет значение Unicode 1f468-1f527, но тогда значения Unicode тона кожи будут следующими:
- ??? ManМеханик: светлый оттенок кожи - 1f468-
1f3fb
-1f527 - ??? Man MecХаник: Средне-светлый оттенок кожи - 1f468-
1f3fc
-1f527 - ??? Man Механик: Средне-тон кожи - 1f468-
1f3fd
-1f527 - ic ManМеханик: Средне-темный тон кожи - 1f468-
1f3fe
-1f527 - ??? Человек Механик: Тон темной кожи - 1f468-
1f3ff
-1f527
I 'Я пытаюсь написать какой-нибудь 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;
Учитывая приведенные выше примеры данных, есть ли способ вернутьэто:
- 1f468-1f9b3
- 1f474
Поскольку это единственные записи с 5 вариантами тонов кожи, которые появляются сразу после первого сегментазначение Юникода?
Может быть невозможно достичь этого без написания функций или чего-то более сложного, или объединения SQL с языком сценариев, таким как PHP, но я хотел бы спросить здесь.