mysql Yii2个反勾导致JSON字段查询活动记录出错

lztngnrs  于 2023-01-25  发布在  Mysql
关注(0)|答案(1)|浏览(133)

以下SQL查询工作正常:

mysql> SELECT `id`, `created`, `type`, `saved`->>"$.total" AS `total` FROM `invoices` LIMIT 20;

saved字段是JSON数据类型,但是,当我尝试对Gridview小部件的搜索模型使用activerecord查询时:

$query = Invoices::find()->select(['id','created','type','`saved`->>"$.total" AS total']);

由于在JSON键total周围添加了反引号,生成的SQL语句将出错

SELECT `id`, `created`, `type`, `saved`->>"$.`total"` AS `total` FROM `invoices` LIMIT 20

我已经尝试了saved字段的几种格式,如:
一个三个三个一个
我无法管理如何让活动记录查询提供正确的SQL语句?!

bq3bfh9z

bq3bfh9z1#

正如llia Yatsenko所建议的那样,我使用了如下表达式,它工作得很好:

$exp = new Expression('`saved`->"$.total"');
$query = Invoices::find()->select(['id','created','type','saved'=>$exp]);

相关问题