1 Gunakan kata kunci SELECT DISTINCT
Dalam pernyataan SQL, anda boleh menggunakan kata kunci SELECT DISTINCT untuk mendapatkan data unik. Dalam ThinkPHP5, apabila menggunakan kaedah query() kelas thinkDb untuk melaksanakan pernyataan pertanyaan SQL, anda boleh terus menggunakan kata kunci SELECT DISTINCT dalam keadaan pertanyaan, contohnya:
use \think\Db; $data = Db::query('SELECT DISTINCT `brand` FROM `goods` WHERE `category_id` = 1');
Dalam kod di atas, kami gunakan kata kunci SELECT DISTINCT Semua jenama yang goods
ialah 1 dalam jadual category_id
diperoleh dan hasil pertanyaan diberikan kepada pembolehubah $data.
2 Gunakan kaedah distinct()
Selain menggunakan kata kunci SELECT DISTINCT dalam pernyataan SELECT, anda juga boleh menggunakan kaedah distinct() yang disediakan oleh ThinkPHP5 untuk mencapai deduplikasi. Seperti yang ditunjukkan di bawah:
use \think\Db; $data = Db::name('goods') ->where('category_id', 1) ->distinct(true) ->field('brand') ->select();
Dalam kod di atas, kami menggunakan kaedah name() kelas Db untuk menentukan jadual data pertanyaan, kaedah where() untuk menentukan syarat penapisan dan distinct() kaedah Pertanyaan deduplikasi didayakan, kaedah medan() digunakan untuk menentukan medan pertanyaan, dan akhirnya kaedah pilih() digunakan untuk melaksanakan operasi pertanyaan.
3 Gunakan kaedah kumpulan()
Selain menggunakan kata kunci SELECT DISTINCT dan kaedah distinct(), anda juga boleh menggunakan kaedah kumpulan() untuk melaksanakan pertanyaan deduplikasi. Seperti yang ditunjukkan di bawah:
use \think\Db; $data = Db::name('goods') ->where('category_id', 1) ->group('brand') ->select();
Dalam kod di atas, kami menggunakan kaedah name() kelas Db untuk menentukan jadual data pertanyaan, kaedah where() untuk menentukan syarat penapisan dan kumpulan() kaedah Pengumpulan dilakukan, dan akhirnya kaedah pilih() digunakan untuk melaksanakan operasi pertanyaan.
Dalam kerja pembangunan sebenar, kita perlu memilih kaedah pertanyaan deduplikasi yang sesuai mengikut keperluan perniagaan tertentu untuk memastikan ketepatan dan kecekapan hasil pertanyaan.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar pertanyaan pendua dalam thinkphp5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!