gpt4 book ai didi

activerecord - 如何使用 Yii 2 构建像 `select ... where id % 2 = 1` 这样的查询?

转载 作者:行者123 更新时间:2023-12-04 13:11:05 25 4
gpt4 key购买 nike

当然,我可以Yii::$app->db->createCommand($sql)->query() ,
但是如果我想使用 ActiveRecord::find()->where($conditions) 怎么办?做这份工作?

最佳答案

这是使用 yii\db\Expression 的选项之一:

use yii\db\Expression;

...

$models = Customer::find()
->select(['id', 'name', ...])
->where(new Expression('id % 2 = 1')])
->all();

它绝对比原始 sql 和 ['%2=', 'id', 1] 更好因为它遵循顺序并且在我看来更具可读性。
['%2=', 'id', 1]也不适合这里,因为 %2=实际上不是像 not in 这样的运算符或 like例如,运算符、值和 =标志有点混合在一起。

官方文档:
  • yii\db\Expression

  • 更新:我问 samdark ,Gitter 官方聊天中的主要框架贡献者之一,他说正确的方法是使用 yii\db\Expression .

    关于activerecord - 如何使用 Yii 2 构建像 `select ... where id % 2 = 1` 这样的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32087681/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com