从mysql查询特定的json键值

zbdgwd5y  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(310)

我有一个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"
  }]

现在我只想从“activity”键中获取值。这就是我要尝试的。

$sql = "select * from table where column like '%".$term."%';

但这将从该列中选择所有值。有没有办法从特定的键得到结果?
我是说这样的事?

$sql = "select * from table where column.activity like '%".$term."%';

谢谢您。

qvk1mo1f

qvk1mo1f1#

你可以用 JSON_EXTRACT 找到 activity 比较一下:

$sql = "SELECT * 
        FROM table
        WHERE JSON_EXTRACT(column,  '$[*].activity') LIKE '%".$term."%'";

对于您的示例数据 JSON_EXTRACT 会回来的 ["Colon Cancer", "Lung Cancer"] 然后可以与例如。 "%Cancer%" .

相关问题