在 JSON_KEYS 加入
JOIN on JSON_KEYS
尝试完成这项工作:
SELECT tm.name
FROM taxi t
JOIN taxi_model tm ON JSON_CONTAINS(JSON_KEYS(t.info), CAST(tm.id AS JSON))
WHERE t.id = 1;
Table数据:
taxi
-----------------------------------------
| id | info |
|---------------------------------------|
| 1 | {'33': 'foo', '64': 'bar'} |
-----------------------------------------
taxi_model
---------------------
| id | name |
|-------------------|
| 33 | 'blueTaxi'|
| 64 | 'redTaxi' |
---------------------
但不返回 blueTaxi
或 redTaxi
。
在 JSON_KEYS(t.info) 上执行简单的 select 时,它 returns 一个适当的 taxi_model id 数组。
也许我需要将 JSON_KEYS 结果转换为 JSON_CONTAINS?
之前的结果
任何帮助将不胜感激
版本:5.7.12-log
SELECT tm.name FROM taxi t
JOIN taxi_model tm ON JSON_CONTAINS(JSON_KEYS(t.info), JSON_ARRAY(CAST(tm.id AS char)))
WHERE t.id = 1;
尝试完成这项工作:
SELECT tm.name
FROM taxi t
JOIN taxi_model tm ON JSON_CONTAINS(JSON_KEYS(t.info), CAST(tm.id AS JSON))
WHERE t.id = 1;
Table数据:
taxi
-----------------------------------------
| id | info |
|---------------------------------------|
| 1 | {'33': 'foo', '64': 'bar'} |
-----------------------------------------
taxi_model
---------------------
| id | name |
|-------------------|
| 33 | 'blueTaxi'|
| 64 | 'redTaxi' |
---------------------
但不返回 blueTaxi
或 redTaxi
。
在 JSON_KEYS(t.info) 上执行简单的 select 时,它 returns 一个适当的 taxi_model id 数组。
也许我需要将 JSON_KEYS 结果转换为 JSON_CONTAINS?
任何帮助将不胜感激
版本:5.7.12-log
SELECT tm.name FROM taxi t
JOIN taxi_model tm ON JSON_CONTAINS(JSON_KEYS(t.info), JSON_ARRAY(CAST(tm.id AS char)))
WHERE t.id = 1;