【问题标题】:How to express concat SQL without using raw SQL?如何在不使用原始 SQL 的情况下表达 concat SQL?
【发布时间】:2016-08-16 08:37:39
【问题描述】:

SQL 是这样的:

select a,b,concat(a,b) from table

但我们不想使用原始 sql(whereRaw() 等),我们想使用 ORM 和查询构造函数。

【问题讨论】:

    标签: php sql laravel


    【解决方案1】:

    您可以这样做:
    1.属性模式:在您的模型中
    添加

    protected $appends = ['con_cat'];
    
    public function getConCatAttribute()
    {
        return $this->attributes['A'].$this->attributes['B']
    }
    

    现在你可以使用

    $yourModel->con_cat
    

    2。功能模式:在您的模型中

    public function concatAB()
    {
        return $this->attributes['A'].$this->attributes['B']
    }
    

    现在你可以使用

    $yourModel->concatAB()
    

    【讨论】:

      【解决方案2】:

      您可以在 ORM 和查询构造函数中使用 Raw Expression 进行 concat。如下所示:

      Model::select('a','b',\DB::raw("concat(a,' ',b)"))
             ->get();
      

      【讨论】:

      • 是的,但是我们有什么方法可以在没有原始表达的情况下表达它?可以使用其他查询构造函数吗?对不起,我的老板很着迷,提出这个疯狂的问题,我无法处理......
      猜你喜欢
      • 1970-01-01
      • 2015-05-26
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      • 2023-02-12
      • 1970-01-01
      相关资源
      最近更新 更多