thinkphp5.1 ialah salah satu rangka kerja pembangunan PHP yang paling popular pada masa ini Ia menyediakan fungsi pertanyaan yang berkuasa dan boleh digunakan untuk melaksanakan pelbagai operasi yang kompleks dalam pangkalan data. Dalam proses pembangunan sebenar, kita sering menghadapi situasi di mana kita perlu membuat pertanyaan jika ia tidak sama dengan nilai tertentu Artikel ini akan memperkenalkan secara terperinci cara melakukan pertanyaan ketaksamaan dalam thinkphp5.1.
Kita perlu terlebih dahulu memahami pembina pertanyaan thinkphp5.1, yang membina pernyataan pertanyaan SQL melalui kaedah panggilan berantai. Sebagai contoh, kita boleh menggunakan kod berikut untuk menanyakan rekod dengan id 1 dalam jadual:
$user = Db::name('user')->where('id', 1)->find();
Di sini, Db::name('user') bermaksud mengendalikan jadual pengguna dan di mana('id ', 1) bermaksud Untuk menanyakan rekod dengan id=1, find() bermaksud mencari rekod dan mengembalikannya. Ini adalah contoh pertanyaan mudah, tetapi dalam aplikasi sebenar, kita perlu menanyakan beberapa rekod yang tidak sama dengan nilai tertentu.
Pertama, kita boleh menggunakan kaedah notEq untuk menanyakan rekod yang tidak sama dengan nilai tertentu. Berikut ialah contoh:
$users = Db::name('user')->where('status', '<>', 1)->select();
Di sini, kaedah notEq akan menanyakan semua rekod yang statusnya tidak sama dengan 1. Jika kita ingin menanyakan rekod dengan id tidak sama dengan 1, kita boleh menggunakan kod berikut:
$users = Db::name('user')->where('id', '<>', 1)->select();
Dalam kaedah where, kita boleh menggunakan operator perbandingan lain, seperti: >, <, > =, < ;= Tunggu. Jika kita ingin menanyakan semua rekod yang statusnya tidak sama dengan 1 dan 2, kita boleh menggunakan kod berikut:
$users = Db::name('user')->where('status', 'not in', [1, 2])->select();
Di sini, 'not in' bermaksud nilai yang bukan antara [1, 2]. Kami juga boleh menggunakan pengendali perbandingan lain, seperti dalam, antara, bukan antara, dll.
Jika kita ingin menanyakan rekod dengan status kosong, kita boleh menggunakan kod berikut:
$users = Db::name('user')->where('status', 'NULL')->select();
Perhatikan bahawa 'NULL' di sini ialah rentetan, yang menunjukkan nilai NULL. Begitu juga, kita juga boleh menanyakan nilai bukan nol, contohnya:
$users = Db::name('user')->where('status', 'NOT NULL')->select();
Selain menggunakan kaedah where, kita juga boleh menggunakan kaedah whereRaw untuk menanyakan rekod yang tidak sama dengan nilai tertentu. Berikut ialah contoh:
$users = Db::name('user')->whereRaw('status <> 1')->select();
Di sini, kaedah whereRaw membenarkan kami menggunakan simbol ketaksamaan (<>) terus dalam pernyataan SQL.
Akhir sekali, kami juga boleh menggunakan fungsi penutupan untuk membina keadaan pertanyaan. Berikut ialah contoh:
$users = Db::name('user')->where(function($query){ $query->where('status', '<>', 1) ->whereOr('name', '<>', 'admin'); })->select();
Di sini, kaedah where dalam fungsi penutupan menjadikan pertanyaan tidak sama dengan rekod dengan status 1, dan pertanyaan kaedah whereOr tidak sama dengan rekod bernama admin.
Ringkasnya, untuk menanyakan rekod yang tidak sama dengan nilai tertentu dalam thinkphp5.1, kita boleh menggunakan kaedah notEq, kaedah where, kaedah whereRaw, fungsi penutupan dan kaedah lain. Perlu memilih kaedah yang sesuai mengikut keadaan sebenar. Jika anda mempunyai sebarang soalan semasa pembangunan, anda boleh merujuk kepada dokumentasi rasmi thinkphp5.1, atau menyertai komuniti pembangunan berkaitan thinkphp5.1 untuk mendapatkan lebih banyak bantuan dan sokongan.
Atas ialah kandungan terperinci pertanyaan thinkphp5.1 tidak sama dengan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!