我有一列包含json数据,
{
"city":"\u0628\u063a\u062f\u0627\u062f",
"town":"\u0627\u0644\u0627\u0639\u0638\u0645\u064a\u0629",
"queue":"316",
"lane":"22",
"home":"15"
}
如何搜索表格中的对象(城镇)? 我尝试过
$query ="SELECT * FROM tabel WHERE JSON_CONTAINS(colom_name,'town') like '%$Word%' order by id DESC";
也完全没有结果
答案 0 :(得分:0)
我们在一个项目中使用JSON字段,例如,我们在一个列中拥有与用户相关的所有内容,简称为JSON。因此,为了更轻松地搜索特定用户,我们使用JSON_EXTRACT。因此,对于您的示例,您可以这样做:
SELECT * FROM Table_Name WHERE JSON_EXTRACT(<json_column>,'$.town') LIKE '%something%'
您甚至可以通过这样操作来获得城镇名称或城市:
SELECT JSON_EXTRACT(<json_column>,'$.<filed_from_json>') FROM Table_Name WHERE JSON_EXTRACT(<json_column>,'$.town') LIKE '%something%'
BR
答案 1 :(得分:-1)
您不必使用JSON_CONTAINS函数。
在文档中:
JSON_CONTAINS()函数测试是否在给定的JSON文档中或者在文档中的指定路径中找到指定的值
您没有json文档,但有普通列。
您的SQL查询应为:
$query ="SELECT * FROM tabel WHERE town like '%$Word%' order by id DESC";