Reputation: 2803
I have this query:
select substr(id,1,4) as id
from meteo.a2012
group by substr(id,1,4)
I just want to take first 4 numbers to my id row, but I'm trying to do in eloquent, how I do?
Thanks.
Upvotes: 5
Views: 10101
Reputation: 11
G'day
I was able to do it like this in Laravel
$data = DataModel::selectRaw("SUBSTRING_INDEX(EMAIL_COLUMN, '@', 1) as 'alias'")->get();
As a result, I get the alias name (address) from the mail [email protected]
Upvotes: 1
Reputation: 177
$ids = Model::get(['id']);
foreach ($ids as $str)
{
$str->id =substr($str->id,1,4);
}
return $ids;
Upvotes: -1
Reputation: 18665
You need to use raw expressions so you can use special functions like that.
Model::select(DB::raw('substr(id, 1, 4) as id'))->groupBy(DB::raw('substr(id, 1, 4)'))->get();
Where Model
is your Eloquent model you want to run the query on.
Upvotes: 8