MYSQL:: 条件不工作的存储过程
MYSQL:: Stored Procedure where condition is not working
我正在尝试从 MYSQL select 构建 json 对象并将其传递给输出参数。
一切正常,但是当我使用 json_object、json_arrayagg、json_objectagg.
时,我的 where 条件不适用
我的select查询是,
SELECT json_object('arraylist',json_arrayagg(json_object('id',id,'code', code, ..., ..., ...))) AS jsonobj
FROM normal_table a
WHERE a.code='826'
AND a.status='true'
AND a.vb_code ='124'
ORDER BY a.date_ts DESC limit 3;
对于此查询,table 中的所有记录都将被填充。
如果我像下面那样删除
SELECT json_object('id',id,'code', code, ..., ..., ...) AS jsonobj
FROM normal_table a
WHERE a.code='826'
AND a.status='true'
AND a.vb_code ='124'
ORDER BY a.date_ts DESC limit 3;
它 returns 正如预期的那样只有 3 行。
我在这里做错了什么....
如果要限制聚合的行数,需要使用子查询来限制选择的行,然后在主查询中聚合。
SELECT json_object('arraylist',json_arrayagg(json_object('id',id,'code', code, ..., ..., ...))) AS jsonobj
FROM (
SELECT *
FROM normal_table a
WHERE a.code='826'
AND a.status='true'
AND a.vb_code ='124'
ORDER BY a.date_ts
DESC limit 3
) AS x;
我正在尝试从 MYSQL select 构建 json 对象并将其传递给输出参数。 一切正常,但是当我使用 json_object、json_arrayagg、json_objectagg.
时,我的 where 条件不适用我的select查询是,
SELECT json_object('arraylist',json_arrayagg(json_object('id',id,'code', code, ..., ..., ...))) AS jsonobj
FROM normal_table a
WHERE a.code='826'
AND a.status='true'
AND a.vb_code ='124'
ORDER BY a.date_ts DESC limit 3;
对于此查询,table 中的所有记录都将被填充。
如果我像下面那样删除
SELECT json_object('id',id,'code', code, ..., ..., ...) AS jsonobj
FROM normal_table a
WHERE a.code='826'
AND a.status='true'
AND a.vb_code ='124'
ORDER BY a.date_ts DESC limit 3;
它 returns 正如预期的那样只有 3 行。
我在这里做错了什么....
如果要限制聚合的行数,需要使用子查询来限制选择的行,然后在主查询中聚合。
SELECT json_object('arraylist',json_arrayagg(json_object('id',id,'code', code, ..., ..., ...))) AS jsonobj
FROM (
SELECT *
FROM normal_table a
WHERE a.code='826'
AND a.status='true'
AND a.vb_code ='124'
ORDER BY a.date_ts
DESC limit 3
) AS x;