mysql - 将 mysql 查询转换为与 laravel 一起使用

标签 mysql laravel-5 eloquent laravel-query-builder

我有一个 MySQL 查询,它对我来说工作得很好。现在我决定将我的项目转换为 Laravel 项目,因此我想将 MySQL 查询转换为 Laravel 查询。

这是我的查询:

select c.username,
    max(case when c.attribute = 'Cleartext-Password' then c.value end) as password,
    max(case when c.attribute = 'Expiration' then c.value end) as expiration,
    max(case when c.attribute = 'ChilliSpot-Max-Total-Octets' then c.value end) as quta,
    max(case when c.attribute = 'Simultaneous-Use' then c.value end) as simul,
    max(case when c.attribute = 'Max-All-Session' then c.value end) as session,
    max(c.adsoyad) as realname, min(c.dtarih) as birthdate, min(c.telefon) as phone,min(c.tcno) as tc,max(c.email) as email,min(c.id) as id
from radcheck c 
group by c.username

我该怎么做?

最佳答案

要使用 Laravel 查询生成器进行上述转换,您需要使用原始表达式

$result = DB::table('radcheck as c')
    ->select('c.username', 
    DB::raw("max(case when c.attribute = 'Cleartext-Password' then c.value end) as password"),
    DB::raw("max(case when c.attribute = 'Expiration' then c.value end) as expiration"),
    DB::raw("max(case when c.attribute = 'ChilliSpot-Max-Total-Octets' then c.value end) as quta"),
    DB::raw("max(case when c.attribute = 'Simultaneous-Use' then c.value end) as simul"),
    DB::raw("max(case when c.attribute = 'Max-All-Session' then c.value end) as session"),
    DB::raw("max(c.adsoyad) as realname"),
    DB::raw("min(c.dtarih) as birthdate"),
    DB::raw("min(c.telefon) as phone"),
    DB::raw("min(c.tcno) as tc"),
    DB::raw("max(c.email) as email"),
    DB::raw("min(c.id) as id")
    )
    ->groupBy('c.username')
    ->get();

关于mysql - 将 mysql 查询转换为与 laravel 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50565793/

相关文章:

php - 从数据库中获取 id 并在另一个页面中显示内容

java - 如何使用 Hibernate 将 UUID 作为主键在两个表中共享?

java - 当用java访问网页时,我的php页面的主体变成关于javascript的错误

php - Laravel 中的模型工厂和数据库播种机有什么区别?

php - Laravel Eloquent 属性转换不起作用

MYSQL:从一个选择中进行多次计数

php - 拉维尔 5 : Controller Inter-Communication and Instantiation

php - 在函数中两次使用 Config::set() 的方法

php - 如何隐藏 laravel 中的关系列?

php - Laravel getDirty 和 getOriginal 在更新时给出相同的值