How can I resolve error : Call to undefined function App\Http\Controllers\JSON_EXTRACT() in laravel 5.3?

How can I resolve error : Call to undefined function App\Http\Controllers\JSON_EXTRACT() in laravel 5.3?

例如,我在 table A

中有一个名为 json 的列

Json 列包含 json 数据,如下所示:

record 1 : {"dept_code": "012", "unit_code": "22"}
record 2 : {"dept_code": "013", "unit_code": "23"}
etc

我想获取包含dept_code = 012

的json列的数据记录

我这样试:

$id = "012";
$data = \DB::table('table_A')
           ->select('*')
           ->where(JSON_EXTRACT('json', "$.dept_code"), '=', '"'.$id.'"')
           ->get();

存在这样的错误:

Call to undefined function App\Http\Controllers\JSON_EXTRACT()

我该如何解决?

您可以使用 laravel 的 JSON where 子句。例如

$id = "012";
$data = DB::table('table_A')
           ->where('json->dept_code', $id)
           ->get();

这适用于 Postgres 和 MySQL(自 5.7.8 起)

Query Builder Where Clauses