【发布时间】:2021-04-15 00:04:04
【问题描述】:
是否可以使用变量作为索引而不是硬编码值来搜索 JSON_ARRAY?
这就是我的意思:
SELECT
t1.*,
t1.tickets->>"$[t1.arr_pos]"
FROM
(
SELECT
c.id AS competition_id,
JSON_ARRAYAGG(t.id) AS tickets,
COUNT(t.id) AS tickets_sold,
FLOOR(RAND()*(COUNT(t.id)-0+1)) AS arr_pos
FROM competitions c
JOIN tickets t ON t.competition_id = c.id
WHERE c.end_date = '2021-01-15 15:00:00'
AND c.tickets_sold > 0
GROUP BY c.id
) t1
如果我将 t1.arr_pos 更改为一个数字(0、1、2 等),它显然可以工作,但我需要根据 arr_pos 中包含的内容进行搜索。
【问题讨论】: