使用 MySQL 8.0.4 及以上版本提供的 JSON_TABLE 函数来实现查询 id 在 3、4、5… 中的数据,示例如下:
SELECT *
FROM table_name
CROSS JOIN JSON_TABLE(items, '$[*]'
COLUMNS (
id INT PATH '$.id'
)
) AS j
WHERE j.id IN (3, 4, 5);
JSON_TABLE 函数将 JSON 数组转换为行,并将 id 作为一列返回,然后使用 CROSS JOIN 将其与原表进行关联,最后筛选出 id 在 3、4 中的数据。
注意:使用 JSON_TABLE 函数需要 MySQL 8.0.4及以上版本的支持。