我有一个包含JSON数据类型列的表,该列包含由另一个表的ID组成的JSON数组。我希望从另一个表返回匹配的行。
例如:
SELECT members
FROM clubhouse
WHERE id = 55;
它会传回:
["7","8","9"]
我需要members
表中ID为7、8和9的三行。
我在想这样的事情,虽然我知道这行不通:
SELECT *
FROM members
WHERE id = [FOR EACH JSON(SELECT members FROM clubhouse WHERE id=55)];
我该怎么做?
注意,我需要一个查询中的所有行,这样我就可以进行基本的分页。如果有必要的话,我使用MariaDB。
2条答案
按热度按时间blmhpbnm1#
我们可以尝试使用
json_contains
函数通过子查询过滤JSON
值。sqlfidde
hi3rlvi22#
您可以使用
json_table
函数(需要MariaDB 10.6或更高版本)将json转换为行,然后连接: