SQLite 判断 JSON 数组是否包含某元素
在SQLite中,你可以使用内置的 json_each
函数来遍历 JSON 数组,并使用 like
或 in
关键字来判断数组是否包含某个元素。以下是一个例子:
假设我们有一个名为 data
的表,其中有一个名为 json_column
的列,该列包含 JSON 数组。我们想要找出那些 JSON 数组中包含数字 1
的行。
SELECT *
FROM data
WHERE '1' IN (SELECT json_each.value
FROM json_each(json_column)
WHERE json_each.value = '1');
这个查询会返回所有 json_column
字段中包含数字 1
的行。
如果你的 SQLite 版本低于 3.35.0,不支持 json_each
函数,你可以使用 json_extract
函数结合 like
关键字来实现:
SELECT *
FROM data
WHERE '["1"]' LIKE '%,"1",%';
这个查询假设 JSON 数组元素都是独立的,并且没有任何逗号在元素周围,这可能不适用于所有情况,因为它对 JSON 数组元素的格式有严格的假设。
评论已关闭