首页 > 解决方案 > 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”。你们中有些人曾经遇到过这个问题吗?

标签: sqlcakephp

解决方案


使用 sql 函数试试这个

$query = $this->CertificatesType->find();

$query->where(['CAST( JSON_UNQUOTE(JSON_EXTRACT(params,"$.params.invoice_date")) as DATE) >'=>'2018-05-15'])


推荐阅读