我有一个 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/