JSON 类型

JSON 类型可以存储 JSON 这种半结构化的数据,相比于直接将 JSON 存储为字符串,它的好处在于:

  1. 使用 Binary 格式进行序列化,对 JSON 的内部字段的查询、解析加快;
  2. 多了 JSON 合法性验证的步骤,只有合法的 JSON 文档才可以放入这个字段中;

JSON 字段本身上,并不能创建索引。相反,可以对 JSON 文档中的某个子字段创建索引。例如:

{{< copyable “sql” >}}

  1. CREATE TABLE city (
  2. id INT PRIMARY KEY,
  3. detail JSON,
  4. population INT AS (JSON_EXTRACT(detail, '$.population')
  5. );
  6. INSERT INTO city VALUES (1, '{"name": "Beijing", "population": 100}');
  7. SELECT id FROM city WHERE population >= 100;