从 mysql 查询特定的 JSON 键值



我有一个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%".

相关内容

  • 没有找到相关文章

最新更新