gpt4 book ai didi

sql - Laravel Eloquent 选择 CASE?

转载 作者:行者123 更新时间:2023-12-03 10:48:05 25 4
gpt4 key购买 nike

有没有在 PHP 和 Laravel Eloquent 方面有经验的人可以帮我解决这个问题?我正在尝试在 raw() 方法中注入(inject) CASE... WHEN.. END...。似乎完全被忽略了。现有的文档还没有。我尝试了几种不同的方法,但都没有成功。我正在努力解决这个问题:

SELECT shares.id, ..., 
CASE WHEN users.id = <CurrentUser> THEN 1 ELSE 0 END AS is_user,
...
FROM <table>
...

源代码如下:
$shares = Share::where('shares.status', '=', SHARE_STATUS_APPROVED)
->where('shares.deleted', '=', '0')
->where('locations.lat', '<=', $nelat)
->where('locations.lat', '>=', $swlat)
->where('locations.lng', '>=', $nelng)
->where('locations.lng', '<=', $swlng)
->where('users.id', '=', $user)
->orWhere('shares.connected_user_id', '=', $user)
->join('users', 'shares.user_id', '=', 'users.id')
->join('locations', 'locations.id', '=', 'users.location_id')
->join('provinces', 'provinces.id', '=', 'locations.province_id')
->join('countries', 'countries.id', '=', 'locations.country_id')
->select('shares.id AS share_id', 'users.id AS user_id', 'shares.connected_user_id', 'shares.original_language_id', 'shares.image',
'users.first_name', 'users.last_name', 'users.email',
'locations.city', 'provinces.name', 'countries.code',
'locations.lat', 'locations.lng',
'shares.created_at')
->raw('(CASE WHEN users.id = ' . $user . ' THEN 1 ELSE 0 END) AS is_user')
->orderBy('shares.created_at', 'desc')
->orderBy('users.id', 'asc')
->orderBy('shares.connected_user_id', 'asc')
->get();

最佳答案

移动您的raw()调用SELECT陈述:

->select('shares.id AS share_id', 'users.id AS user_id', 'shares.connected_user_id',    
'shares.original_language_id', 'shares.image',
'users.first_name', 'users.last_name', 'users.email',
'locations.city', 'provinces.name', 'countries.code',
'locations.lat', 'locations.lng',
'shares.created_at',
DB::raw('(CASE WHEN users.id = ' . $user . ' THEN 1 ELSE 0 END) AS is_user')
)
->orderBy('shares.created_at', 'desc')

发件人: https://laravel.com/docs/5.4/queries#raw-expressions

关于sql - Laravel Eloquent 选择 CASE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17092112/

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