【发布时间】:2017-09-02 11:45:25
【问题描述】:
我的表中有一个包含 json 字符串的字符串字段。让我们命名那个 tbl_table
假设它有这 3 条记录:
id json
----------------
1 [123,45,1]
2 [23,4,5]
3 [7,8,9]
现在我想获取在其 json 字段中包含数字的记录(使用 Yii2 中的活动记录),所以:
$res = Table::find()->where(['like','json','23'])->all();
此查询返回这些记录:
id json
----------------
1 [123,45,1]
2 [23,4,5]
这实际上不是一个错误的结果,但我想要的是只返回带有id=2 的记录。我该怎么做?
对于['like','json','5'] 或['like','json','4'] 等等?数字相似,但我希望确切的数字匹配。
还有一个问题,我想在这部分 ['like','json',[4,5,6]] 中更改最后一个问题的答案。
换句话说,我想将一个数组传递给 like 运算符,它会自动为每个元素进行 OR 运算。有可能吗?如果不是,我如何迭代数组并使用最后一个问题功能创建多个 Or_like 条件而无需执行多个查询?
【问题讨论】:
标签: php mysql activerecord yii2-advanced-app