MYSQL存储函数中的SELECT查询

时间:2018-06-21 06:13:19

标签: mysql stored-procedures stored-functions

我需要在具有变量的存储函数中运行以下查询

SELECT json_unquote(json_extract(value,'$."_key"')) INTO org_rank_value FROM preferences WHERE id=_id;

此处_key和_id是声明的变量,但是_key不能用值替换,因为它用引号引起来。有什么方法可以构建和执行上述查询?

1 个答案:

答案 0 :(得分:0)

在没有有关您的数据库结构的更多上下文的情况下,这就是我解释您问题的方式。

1)您要选择一个特定的ID。

2)您要根据ID在json字段中更改参数。

3)您要执行查询。

DECLARE @json NVARCHAR(MAX) = (SELECT org_rank_value FROM preferences WHERE id=_id)
SELECT * FROM OPENJSON(@json) 
WITH (  
    yourKey varchar(200) '$.key' -- change to whatever your variables are. 
 )  AS changeKey;
UPDATE preferences SET json_unquote(json_extract(value,'$."_key"')) INTO org_rank_value WHERE id=_id;

在MySQL中,您可以使用 JSON_ARRAY_APPEND