我有一个mysql(v5.7.23)表,其中包含这样的json对象
[{
"plant_part": "Leaves, Seed",
"extract_type": "Ethanol",
"activity": "Colon Cancer",
"reference": "6"
},
{
"plant_part": "Leaves, Seed",
"extract_type": "Ethanol",
"activity": "Lung Cancer",
"reference": "6"
}]
现在,我只想从“活动”键中获得价值。这就是我正在尝试的。
$sql = "select * from table where column like '%".$term."%';
,但这将从该列中选择所有值。有什么办法可以从特定键获取结果?
我的意思是这样的?
$sql = "select * from table where column.activity like '%".$term."%';
谢谢。
答案 0 :(得分:1)
您可以使用JSON_EXTRACT
来找到activity
的值并进行比较:
$sql = "SELECT *
FROM table
WHERE JSON_EXTRACT(column, '$[*].activity') LIKE '%".$term."%'";
对于您的示例数据,JSON_EXTRACT
将返回["Colon Cancer", "Lung Cancer"]
,然后可以将其与例如"%Cancer%"
。