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

WBOY
WBOYOriginal
2016-08-04 09:19:16931Durchsuche

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~

Antwortinhalt:

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 werden
DB::table('yourtable')->where('sex', 1)->where('age', $age)->count();
Ich weiß nicht, ob dies die ursprüngliche Logik des Posters ist

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn