在JSON_KEYS函数中,我不明白什么是返回类型:
https://docs.singlestore.com/cloud/reference/sql-reference/json-functions/json-keys/
根据文档:返回值:一个 JSON 数组
items_keys = JSON_KEYS(weighted_items_json);
我尝试将 items_keys 声明为:
items_keys ARRAY(VARCHAR(255)); items_keys ARRAY(INT); items_keys JSON;
每次都会出现错误:
Y000][2211] Compilation error in function
recommendation_groupon_us.
new_method near line 40: It is not valid to create a value of type 'array(varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL)' from 'JSON_KEYS(weighted_items_json)' because the types are incompatible
我认为在 SingleStore 中,JSON 被视为一种独特的数据类型,与数组或其他数据类型分开。1
要使用 JSON_KEYS 的结果,您应该将 items_keys 声明为 JSON 类型。
例如:
DECLARE items_keys JSON;
SET items_keys = JSON_KEYS(weighted_items_json);
如果您需要将键作为数组使用,则可能需要使用 JSON_TO_ARRAY 函数将 JSON 数组转换为 SingleStore 数组。您可以这样做:
DECLARE items_keys_array ARRAY(JSON);
SET items_keys_array = JSON_TO_ARRAY(JSON_KEYS(weighted_items_json));
请参阅以下文档和博客页面。 https://www.singlestore.com/blog/what-is-json-/
https://docs.singlestore.com/cloud/reference/sql-reference/json-functions/json-to-array/#syntax
SingleStore 在他们的支持论坛上更加活跃,也许可以直接在那里联系他们。