条件表达式
ZENITH提供IS JSON、IS NOT JSON条件,可以用在约束、CASE、WHERE等条件表达式中,用于判断数据是否是JSON格式。
数据类型 |
IS JSON |
IS NOT JSON |
---|---|---|
非法的JSON数据 |
FALSE |
TRUE |
空串''或空值NULL |
NULL |
NULL |
标量JSON数据:数值、字符串、true、false |
FALSE |
TRUE |
非标量合法的JSON数据:对象、数组 |
TRUE |
FALSE |
示例:
-- 为JSON列指定IS JSON约束 DROP TABLE IF EXISTS t_school; CREATE TABLE t_school(id INT, info CLOB check(info IS JSON));
-- 非法JSON数据,IS JSON返回FALSE,IS NOT JSON返回TRUE SELECT * FROM SYS_DUMMY WHERE '{ NOT JSON WELL-FORMATED JSON DATA}' IS JSON; SELECT * FROM SYS_DUMMY WHERE '' IS JSON; SELECT * FROM SYS_DUMMY WHERE NULL IS JSON;
-- 空串''、NULL,其IS JSON/IS NOT JSON结果都是NULL SELECT * FROM SYS_DUMMY WHERE '' IS JSON; SELECT * FROM SYS_DUMMY WHERE '' IS NOT JSON; SELECT * FROM SYS_DUMMY WHERE NULL IS JSON; SELECT * FROM SYS_DUMMY WHERE NULL IS NOT JSON;
-- 标量数据(数值、字符串、true、false、null),IS JSON返回FALSE,IS NOT JSON返回TRUE SELECT * FROM SYS_DUMMY WHERE '1.23456' IS JSON; SELECT * FROM SYS_DUMMY WHERE '"Hello"' IS JSON; SELECT * FROM SYS_DUMMY WHERE 'true' IS JSON; SELECT * FROM SYS_DUMMY WHERE 'false' IS JSON; SELECT * FROM SYS_DUMMY WHERE 'null' IS JSON;
-- 非标量合法的JSON数据(对象、数组),IS JSON返回TRUE,IS NOT JSON返回FALSE SELECT * FROM SYS_DUMMY WHERE '{}' IS JSON; SELECT * FROM SYS_DUMMY WHERE '{"name":"First Primary School"}' IS JSON; SELECT * FROM SYS_DUMMY WHERE '[]' IS JSON; SELECT * FROM SYS_DUMMY WHERE '[1,2,3]' IS JSON;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论