MySQL
MySQL
SELECT JSON_VALID('{"a":1}'), JSON_VALID('{a:1}'); -- 1, 0
SELECT JSON_TYPE(doc->'$.items'); -- 'ARRAY'
SELECT JSON_LENGTH(doc->'$.items'); -- 数组元素个数
SELECT JSON_KEYS(doc); -- 顶层键数组PostgreSQL
PostgreSQL
SELECT jsonb_typeof(doc->'items'); -- 'array'(小写)
SELECT jsonb_array_length(doc->'items');
SELECT * FROM t WHERE doc IS JSON; -- PG 16+ 的 IS JSON 谓词
-- 旧版本:入表前用应用层或 CHECK 约束配合类型转换验证| MySQL | JSON_VALID / JSON_TYPE(大写枚举)/ JSON_LENGTH / JSON_KEYS |
|---|---|
| PostgreSQL | jsonb_typeof 返回小写(object/array/string/number/boolean/null) |
| 校验 | PG 16+ 支持 IS JSON 谓词;无内置非报错校验时靠约束与应用层 |