Yii 2 JSON_VALUE结果作为Active Record中的连接条件

时间:2018-02-03 13:22:39

标签: json activerecord yii2

示例我们有表A和B. 在表A中,我们有一些带有一些json数据的数据字段。

如何使用JSON_VALUE条件构建Active Record关系?

在普通的sql中,它看起来像

SELECT * FROM A
LEFT JOIN B ON B.id = JSON_VALUE(A.data, '$.paramName')

2 个答案:

答案 0 :(得分:0)

您可以使用findBySql方法

$sql = "SELECT * FROM A
         LEFT JOIN B ON 'B.id = JSON_VALUE(A.data, " . $paramName . ")";
$model = YourModel::findBySql($sql)->all(); 

答案 1 :(得分:0)

至于我能找到框架,它自己不支持sql函数执行结果作为连接关系。现在,对我来说最好的方法是执行子查询并使用populateRelation方法。如果你找到更好的方式,我会很高兴知道。