python - 查询匹配的 json 数组键
问题描述
我在 mysql 中有一个名为column_info
. 这是一个示例值:
[{"id": ["132605", "132750", "132772", "132773", "133065", "133150", "133185", "133188", "133271", "133298"]},
{"number": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]},
{"id": ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1"]}
]
是否可以执行以下查询:
keys = ['id', 'number', 'id']
SELECT * FROM `column_info` WHERE JSON(??) = keys
解决方案
尝试:
SELECT `column_info`
FROM
`table`,
(SELECT @`keys` := '["id", "number", "id"]') `init`
WHERE (
SELECT
JSON_ARRAYAGG(
JSON_UNQUOTE(
JSON_EXTRACT(
JSON_KEYS(`der`.`keys`),
'$[0]'
)
)
)
FROM
JSON_TABLE(
`column_info`,
'$[*]'
COLUMNS(
`keys` JSON PATH '$'
)
) `der`
) = CAST(@`keys` AS JSON);
请参阅db-fiddle。
推荐阅读
- c# - 是否可以在继承类中覆盖抽象父级的嵌套类定义?
- c++ - 虚函数输入 参数类型
- lstm - 如何用 n 克训练神经网络(LSTM)?
- python - 我如何从头开始编写代码以按目标变量进行分层抽样?
- azure-data-factory - 使用 Azure 数据工厂的数据库表列中最后一个非空值或空值的表达式
- c - 调试 C 程序时终端不工作
- python - 如何在 tkinter UI 中自动调整 ttk 元素的大小与根窗口大小调整正确相关?
- vb.net - 填充 RichTextBox 仅适用于点击事件
- flutter - 在 Flutter 中,如何一次设置 *all* 脚手架背景颜色?
- javascript - 匹配nodejs中两个列表中的项目