Heim >Backend-Entwicklung >PHP-Tutorial >laravel: So ermitteln Sie mit nur einer Anweisung die Anzahl der Datenelemente, die verschiedenen Bedingungen in einer Tabelle entsprechen
Laravel: So ermitteln Sie mit nur einer Anweisung die Anzahl der Datenelemente, die verschiedenen Bedingungen in einer Tabelle entsprechen
Die folgende Tabelle:
<code>id name age sex 1 a 1 0 2 b 10 1 3 c 2 1 </code>
Erhalten Sie: Die Anzahl der Geschlechter ist 1 und das Alter ist 2, die Anzahl der Geschlechter ist 1 und das Alter ist 5, die Anzahl der Geschlechter ist 1 und das Alter ist 10
Anforderung: hohe Effizienz
Vielleicht was ich ausgedrückt ist das nicht Es ist sehr klar, dass das, was erreicht werden muss, wenn das Geschlecht 1 ist, wie viele 2 Jahre alt sind, wie viele 5 Jahre alt sind und wie viele 10 Jahre alt sind
Hinweis: Es ist am besten, Laravel-Framework-Anweisungen zu verwenden, vorzugsweise keine Originalanweisungen. Die Datenmenge beträgt Hunderttausende bis Millionen
Helft mir, Leute~
Laravel: So ermitteln Sie mit nur einer Anweisung die Anzahl der Datenelemente, die verschiedenen Bedingungen in einer Tabelle entsprechen
Die folgende Tabelle:
<code>id name age sex 1 a 1 0 2 b 10 1 3 c 2 1 </code>
Erhalten Sie: Die Anzahl der Geschlechter ist 1 und das Alter ist 2, die Anzahl der Geschlechter ist 1 und das Alter ist 5, die Anzahl der Geschlechter ist 1 und das Alter ist 10
Anforderung: hohe Effizienz
Vielleicht was ich ausgedrückt ist das nicht Es ist sehr klar, dass das, was erreicht werden muss, wenn das Geschlecht 1 ist, wie viele 2 Jahre alt sind, wie viele 5 Jahre alt sind und wie viele 10 Jahre alt sind
Hinweis: Es ist am besten, Laravel-Framework-Anweisungen und keine Originalanweisungen zu verwenden. Die Datenmenge beträgt Hunderttausende bis Millionen
Helft mir, Leute~
Probieren Sie diesen Satz Table::select(DB::raw('age,count(id) count'))->where('sex',1)->groupBy('age')->get()->toArray();
Ich weiß nicht viel über SQL, aber die Verwendung von Query Builder anstelle von Eloquent ORM kann die Effizienz verbessern. Obwohl dieses ORM sehr leistungsfähig ist, ist es auch der langsamste Teil von Laravel.
Wenn es sich um eine Anfrage des Themeneigentümers handelt, soll die Aggregationsfunktion von DB verwendet werdenDB::table('yourtable')->where('sex', 1)->where('age', $age)->count();
Ich weiß nicht, ob dies die ursprüngliche Logik des Posters ist