Gleiche Abfrage unterscheidet sich bei Laravel
Posted: 09 Apr 2025, 05:12
Ich möchte den Rang der Tag-Nummer vom Benutzer erhalten.
Ergebnis
Beschreibung
Tag_Result ist die richtigen Daten. 0.
Der einzige Unterschied ist die Verwendung von db :: table oder userItemtag (Modell) . class = "Lang-json PrettyPrint-Override">
Code: Select all
// controller
public function test() {
$userItemTag = DB::table('user_item_tag')
->select('userid', DB::raw('COUNT(1) as count'))
->groupBy('userid')
->orderByDesc('count')
->limit(3);
$userItemTag2 = UserItemTag::select('userid', DB::raw('COUNT(1) as count'))
->groupBy('userid')
->orderByDesc('count')
->limit(3);
return [
'tag_sql' => $userItemTag->toSql(),
'tag2_sql' => $userItemTag2->toSql(),
'tag_result' => $userItemTag->get(),
'tag2_result' => $userItemTag2->get(),
];
}
Code: Select all
{
"tag_sql": "select `userid`, COUNT(1) as count from `user_item_tag` group by `userid` order by `count` desc limit 3",
"tag2_sql": "select `userid`, COUNT(1) as count from `user_item_tag` group by `userid` order by `count` desc limit 3",
"tag_result": [
{
"userid": 1,
"count": 23347
},
{
"userid": 2,
"count": 18749
},
{
"userid": 3,
"count": 18692
}
],
"tag_result": [
{
"userid": 1,
"count": 0
},
{
"userid": 2,
"count": 0
},
{
"userid": 3,
"count": 0
}
]
}
Tag_Result ist die richtigen Daten. 0.
Der einzige Unterschied ist die Verwendung von db :: table oder userItemtag (Modell) . class = "Lang-json PrettyPrint-Override">
Code: Select all
{
"php": "^8.0.2",
"laravel/framework": "^9.19",
}