Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk melaksanakan fungsi menanyakan jumlah bilangan sub-jadual dalam laravel

Bagaimana untuk melaksanakan fungsi menanyakan jumlah bilangan sub-jadual dalam laravel

PHPz
PHPzasal
2023-04-03 17:55:17987semak imbas

Jumlah bilangan pertanyaan jadual Laravel merujuk kepada jumlah bilangan rekod yang digunakan untuk menanyakan berbilang jadual dalam pangkalan data menggunakan rangka kerja Laravel. Dalam pembangunan sebenar, pangkalan data mungkin mengandungi berbilang jadual, dan hubungan antara jadual ini agak kompleks. Apabila anda perlu mengira bilangan rekod dalam pangkalan data, jika anda terus menggunakan penyata SQL untuk membuat pertanyaan, anda perlu menulis berbilang penyata SQL untuk membuat pertanyaan setiap jadual secara berasingan, dan kemudian menjumlahkan hasilnya. Kaedah ini lebih menyusahkan dan kelajuan pertanyaan agak perlahan. Oleh itu, dalam rangka kerja Laravel, anda boleh menggunakan kaedah menanyakan jumlah jadual untuk mengelakkan kesulitan ini.

Laravel ialah rangka kerja pembangunan web popular yang dibangunkan berdasarkan bahasa PHP Ia digunakan secara meluas dalam industri Internet untuk kaedah pengaturcaraan yang ringkas, elegan dan cekap. Rangka kerja Laravel menyediakan pelbagai kaedah pertanyaan terbina dalam, termasuk kaedah untuk mengira dan statistik pada berbilang jadual data. Untuk sistem dengan bilangan jadual data yang banyak, menggunakan kaedah menanyakan jumlah jadual boleh mengurangkan kerumitan menanyakan rekod pangkalan data, meningkatkan kelajuan pertanyaan dan meningkatkan kecekapan pengendalian sistem.

Yang berikut menerangkan cara menggunakan rangka kerja Laravel untuk melaksanakan jumlah pertanyaan sub-jadual.

  1. Buat pernyataan pertanyaan

Mula-mula, takrifkan pernyataan pertanyaan dalam pengawal Laravel. Andaikan bahawa terdapat dua jadual data, Pengguna dan Pesanan Tentukan kod berikut dalam pengawal:

$total_count = 0;
$total_count += DB::table('users')->count();
$total_count += DB::table('orders')->count();

Kod di atas mengira jadual Pengguna dan Pesanan, kemudian menambah jumlah bilangan rekod dalam dua jadual untuk mendapatkan Jumlah bilangan rekod $total_count. Oleh kerana bilangan jadual mungkin besar dan nama jadual mungkin sama dengan alias, tatasusunan perlu ditakrifkan untuk menyimpan nama jadual dan alias yang sepadan.

$tables = [
    'users'  => 'u',
    'orders' => 'o',
];
$total_count = 0;
foreach ($tables as $table_name => $alias) {
    $query = DB::table($table_name)->select(DB::raw("COUNT({$alias}.id) as row_count"));
    $row = $query->first();
    $total_count += $row->row_count;
}

Kod di atas menggunakan gelung foreach untuk melintasi tatasusunan nama jadual, menghantar nama jadual dan alias ke dalam kaedah DB::table setiap kali, dan kemudian menggunakan ungkapan asal (mentah) untuk membina penyata COUNT untuk statistik. Akhir sekali, keputusan statistik dikumpul untuk mendapatkan jumlah bilangan rekod $total_count.

  1. Gunakan pertanyaan sub-jadual

Selain menggunakan kaedah DB::table, rangka kerja Laravel juga menyediakan fungsi pertanyaan sub-jadual, yang boleh menggabungkan beberapa keping data Jadual dianggap sebagai satu jadual untuk pengiraan statistik, dengan itu memudahkan operasi pertanyaan. Berikut menerangkan cara menggunakan penanya sub-jadual untuk menanyakan berbilang jadual data.

$total_count = DB::table('users')->unionAll(DB::table('orders'))->sum(DB::raw('1'));

Kod di atas menggunakan kaedah unionAll untuk melaksanakan pertanyaan bersama pada berbilang jadual, dan kaedah jumlah mengira jumlah bilangan baris dalam keputusan. Memandangkan kaedah jumlah dalam Laravel hanya boleh mengira lajur berangka, anda perlu menggunakan kaedah mentah untuk mencipta lajur yang kesemuanya 1.

  1. Gunakan Model

Semasa pembangunan, selalunya perlu menanyakan jadual data yang sama beberapa kali Menggunakan Model boleh memudahkan penggunaan semula kod pertanyaan. Model Laravel (Model) ialah salah satu komponen teras untuk mengendalikan pangkalan data dalam rangka kerja Laravel Selain menyediakan operasi CRUD asas, ia juga membolehkan pembangun membina pernyataan pertanyaan dengan lebih mudah.

Mula-mula tentukan kelas model (Model) dalam Laravel:

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table = 'users';
}

Kod di atas mentakrifkan kelas model Pengguna dan menentukan nama jadual data yang akan dikendalikan oleh model. Selepas memiliki model, anda boleh melakukan pelbagai operasi pada jadual data, seperti mengira jumlah bilangan rekod:

$total_count = 0;
$total_count += User::count();
$total_count += Order::count();

Kod di atas menggunakan kaedah kiraan untuk mengira jadual Pengguna dan Pesanan. Terima kasih kepada pendekatan model, statistik telah menjadi lebih mudah. Pada masa yang sama, model Laravel juga menyediakan pelbagai kaedah pertanyaan untuk memenuhi pelbagai keperluan pertanyaan.

Ringkasan

Melalui langkah di atas, kita boleh menggunakan rangka kerja Laravel untuk menanyakan jumlah jadual. Dalam penggunaan sebenar, anda boleh memilih untuk menggunakan kaedah yang berbeza mengikut situasi sebenar sistem. Tidak kira kaedah yang digunakan, amalan pengaturcaraan yang baik dan amalan terbaik perlu diikuti untuk memastikan kebolehbacaan, kebolehselenggaraan dan kebolehskalaan program.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi menanyakan jumlah bilangan sub-jadual dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn