unnest_bitmap
unnest_bitmap — это табличная функция, которая принимает bitmap и преобразует элементы в этом bitmap в несколько строк таблицы.
Lateral Join Selena можно использовать в сочетании с функцией unnest_bitmap для реализации распространённой логики преобразования столбца в строки.
Эту функцию можно использовать для замены unnest(bitmap_to_array(bitmap)). Она имеет лучшую производительность, использует меньше ресурсов памяти и не ограничена длиной массива.
Эта функция поддерживается с версии v1.5.2.
Синтаксис
unnest_bitmap(bitmap)
Параметры
bitmap: bitmap, ко торый вы хотите преобразовать.
Возвращаемое значение
Возвращает несколько строк, преобразованных из bitmap. Тип возвращаемого значения — BIGINT.
Примеры
c2 — это столбец bitmap в таблице t1.
-- Используйте функцию bitmap_to_string для преобразования значений в столбце c2 в строку.
mysql> select c1, bitmap_to_string(c2) from t1;
+------+----------------------+
| c1 | bitmap_to_string(c2) |
+------+----------------------+
| 1 | 1,2,3,4,5,6,7,8,9,10 |
+------+----------------------+
-- Используйте функцию unnest_bitmap для разворачивания столбца bitmap в несколько строк.
mysql> select c1, unnest_bitmap from t1, unnest_bitmap(c2);
+------+---------------+
| c1 | unnest_bitmap |
+------+---------------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
| 1 | 6 |
| 1 | 7 |
| 1 | 8 |
| 1 | 9 |
| 1 | 10 |
+------+---------------+