sql - Cakephp 中的 json_extract SQL
问题描述
我需要一些关于 json_extract 查询的帮助。我正在尝试从 Cakephp 2 执行以下查询:
select * from certificates_types where json_extract(params, '$.params.invoice_date') > '2018-05-15'
我使用 Cakephp 的查询来做到这一点:
$query = 'SELECT * FROM certificates_types WHERE json_extract("params", "$.params.invoice_date") >= "2008-01-01"';
$types = $this->CertificatesType->query($query);
我只收到相同的错误:“SQL 错误:3141:函数 json_extract 的参数 1 中的 JSON 文本无效:“文档为空。”在位置 0”。你们中有些人曾经遇到过这个问题吗?
解决方案
使用 sql 函数试试这个
$query = $this->CertificatesType->find();
$query->where(['CAST( JSON_UNQUOTE(JSON_EXTRACT(params,"$.params.invoice_date")) as DATE) >'=>'2018-05-15'])