mysql json_extract 动态位置
mysql json_extract dynamic position
SELECT id, JSON_EXTRACT(column,'$.parent[3].child') AS child FROM table
WHERE JSON_EXTRACT(column,'$.parent[3].child') IN (1)
这是我的 sql 查询。我还有一列 jsonlength
如何在一个查询中连接这两列?我想将 3
更改为 jsonlength
中给出的动态数字
例如:
SELECT id, JSON_EXTRACT(column,'$.parent['jsonlength'].child') AS child FROM table
WHERE JSON_EXTRACT(column,'$.parent['jsonlength'].child') IN (1)
但是这个查询不起作用。
您需要使用字符串连接形成 JSON 路径。在 MySQL 中,这是通过 CONCAT() function.
完成的
SELECT id, JSON_EXTRACT(column, CONCAT('$.parent[',jsonlength,'].child')) AS child FROM table
WHERE JSON_EXTRACT(column,CONCAT('$.parent[',jsonlength,'].child')) IN (1)
SELECT id, JSON_EXTRACT(column,'$.parent[3].child') AS child FROM table
WHERE JSON_EXTRACT(column,'$.parent[3].child') IN (1)
这是我的 sql 查询。我还有一列 jsonlength
如何在一个查询中连接这两列?我想将 3
更改为 jsonlength
例如:
SELECT id, JSON_EXTRACT(column,'$.parent['jsonlength'].child') AS child FROM table
WHERE JSON_EXTRACT(column,'$.parent['jsonlength'].child') IN (1)
但是这个查询不起作用。
您需要使用字符串连接形成 JSON 路径。在 MySQL 中,这是通过 CONCAT() function.
完成的SELECT id, JSON_EXTRACT(column, CONCAT('$.parent[',jsonlength,'].child')) AS child FROM table
WHERE JSON_EXTRACT(column,CONCAT('$.parent[',jsonlength,'].child')) IN (1)