我有一个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."%';
谢谢。
您可以使用JSON_EXTRACT
来查找activity
的值并进行比较:
$sql = "SELECT *
FROM table
WHERE JSON_EXTRACT(column, '$[*].activity') LIKE '%".$term."%'";
对于您的样本数据,JSON_EXTRACT
将返回["Colon Cancer", "Lung Cancer"]
然后可以与例如"%Cancer%"
.