Rumah > Artikel > pembangunan bahagian belakang > Pengoptimuman pertanyaan PHP: kaedah untuk mengalih keluar medan yang tidak sama rata
Tajuk: Pengoptimuman Pertanyaan PHP: Kaedah Mengalih Keluar Medan Tidak Sama
Apabila melakukan pertanyaan pangkalan data, kami sering menghadapi situasi di mana syarat tertentu perlu ditapis. Kadangkala kita perlu menanyakan data yang medan tertentu tidak sama dengan nilai tertentu. Ini memerlukan pengoptimuman pernyataan pertanyaan untuk meningkatkan kecekapan. Dalam PHP, kita boleh menggunakan beberapa kaedah untuk mengalih keluar medan yang tidak sama rata untuk mengoptimumkan kecekapan pertanyaan. Artikel ini akan memperkenalkan beberapa kaedah yang biasa digunakan dan memberikan contoh kod khusus untuk rujukan.
1. Gunakan operator NOT sama
Dalam pernyataan SQL, kita boleh menggunakan operator NOT untuk menyatakan keadaan yang tidak sama. Dalam PHP, kita boleh mencapai fungsi ini dengan menyambung penyataan SQL. Berikut ialah contoh kod:
<?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); // 查询数据 $sql = "SELECT * FROM myTable WHERE myField NOT LIKE '%value%'"; $result = $conn->query($sql); // 输出结果 if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "ID: " . $row["id"]. " - Name: " . $row["name"]. "<br>"; } } else { echo "0 results"; } $conn->close(); ?>
Dalam contoh di atas, kami menggunakan operator NOT LIKE untuk menanyakan data bahawa medan myField tidak mengandungi nilai tertentu.
2. Gunakan pemprosesan fungsi
Selain menggunakan operator secara langsung, kami juga boleh menggunakan pemprosesan fungsi terbina dalam PHP untuk menapis medan yang tidak sama. Sebagai contoh, anda boleh menggunakan fungsi array_filter() untuk menapis hasil pertanyaan, seperti yang ditunjukkan di bawah:
<?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); // 查询数据 $sql = "SELECT * FROM myTable"; $result = $conn->query($sql); // 处理结果集 if ($result->num_rows > 0) { $filteredData = array(); while($row = $result->fetch_assoc()) { if($row["myField"] != "value") { $filteredData[] = $row; } } // 输出结果 foreach($filteredData as $row) { echo "ID: " . $row["id"]. " - Name: " . $row["name"]. "<br>"; } } else { echo "0 results"; } $conn->close(); ?>
Dalam contoh di atas, kami mengulangi hasil pertanyaan dan menggunakan pernyataan if untuk menapis data di mana medan myField berada tidak sama dengan nilai tertentu, Simpan data yang layak ke dalam tatasusunan $filteredData, dan akhirnya mengeluarkan hasil yang ditapis.
3. Gunakan subqueries dalam SQL
Kaedah lain ialah menggunakan subqueries dalam SQL untuk menapis keadaan di mana medan tidak sama. Berikut ialah kod sampel:
<?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); // 查询数据 $sql = "SELECT * FROM myTable WHERE id NOT IN (SELECT id FROM myTable WHERE myField = 'value')"; $result = $conn->query($sql); // 输出结果 if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "ID: " . $row["id"]. " - Name: " . $row["name"]. "<br>"; } } else { echo "0 results"; } $conn->close(); ?>
Dalam contoh di atas, kami menggunakan subkueri untuk mengalih keluar data yang medan myFieldnya bersamaan dengan nilai tertentu dalam hasil pertanyaan, dengan itu memperoleh data yang medan myFieldnya tidak sama dengan yang tertentu. nilai.
Ringkasan
Melalui kaedah yang diperkenalkan di atas, kami boleh menapis data yang medannya dalam hasil pertanyaan tidak sama dengan nilai tertentu dalam PHP, dengan itu mengoptimumkan kecekapan pertanyaan. Dalam pembangunan sebenar, memilih kaedah yang sesuai untuk mengoptimumkan keadaan pertanyaan berdasarkan keadaan tertentu akan membantu meningkatkan prestasi dan kecekapan program.
Atas ialah kandungan terperinci Pengoptimuman pertanyaan PHP: kaedah untuk mengalih keluar medan yang tidak sama rata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!