MySQL 8
MySQL 8
SELECT o.id, jt.tag
FROM orders o,
JSON_TABLE(o.tags, '$[*]'
COLUMNS (tag VARCHAR(64) PATH '$')) AS jt
WHERE jt.tag = 'vip';PostgreSQL
PostgreSQL
SELECT o.id, t.tag
FROM orders o
CROSS JOIN LATERAL jsonb_array_elements_text(o.tags) AS t(tag)
WHERE t.tag = 'vip';| MySQL | JSON_TABLE 把 JSON 文档转成行集 |
|---|---|
| PostgreSQL | jsonb_array_elements_text 是集合返回函数,配合 LATERAL |
| 用途 | 标签检索、明细展开、JSON 去规范化数据 |