[英]MySQL - Select rows where json_column has specific value
我有一個包含 JSON 的列trip_info的 MySQL 表測試,例如:
{
"trips": [{
"id": "261213_0",
"type": "CD",
"truck": "1847",
"planbloc": "EE_001",
"reuse": "EE_001",
"status": "4",
"stops": [{
"208201": [{
"handling": "S",
"date": "2021-07-16"
}],
"D_517318_SZENTGOTTHARD": [{
"handling": "S",
"date": "2021-07-16"
}],
"T_857925_LOIPERSDORF - KITZLADEN": [{
"handling": "C",
"date": "2021-07-16"
}],
"T_895103_OBERWART": [{
"handling": "C",
"date": "2021-07-16"
}],
"D_613251_SCHACHENDORF": [{
"handling": "S",
"date": "2021-07-16"
}],
"T_894297_SZIGETSZENTMIKLOS": [{
"handling": "D",
"date": "2021-07-19"
}]
}]
}]
}
我想選擇我的表中包含處理 'C' 的停止 ID '208201' 的所有行。 我嘗試了以下查詢但沒有成功:
SELECT * FROM test WHERE JSON_CONTAINS(trip_info, '"208201"', '$.trips.stops') AND JSON_CONTAINS(trip_info, '"C"', '$.trips.stops.handling')
任何人都可以幫忙嗎?
嘗試以下查詢:
SELECT *
FROM test
WHERE JSON_CONTAINS(JSON_UNQUOTE(trip_info->"$.trips[*].stops[*].""208201""[*].handling"), '"C"');
檢查dbfiddle
SELECT *
FROM test
WHERE JSON_CONTAINS(JSON_UNQUOTE(JSON_EXTRACT(trip_info, "$.trips[*].stops[*].""208201""[*].handling")), '"C"');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.