Pengendalian nilai MySQL NULL
Pemprosesan nilai NULL MySQL
Kita sudah tahu bahawa MySQL menggunakan perintah SQL SELECT dan klausa WHERE untuk membaca data dalam jadual data, tetapi apabila dengan syarat Apabila medan syarat pertanyaan adalah NULL, arahan itu mungkin tidak berfungsi dengan betul.
Untuk mengendalikan situasi ini, MySQL menyediakan tiga operator utama:
IS NULL: Apabila nilai lajur adalah NULL, ini simbol operasi kembali benar.
BUKAN NULL: Apabila nilai lajur bukan NULL, pengendali mengembalikan benar.
<=>: operator perbandingan (berbeza daripada = operator), mengembalikan benar apabila kedua-dua nilai yang dibandingkan adalah NULL.
Operasi perbandingan bersyarat pada NULL agak istimewa. Anda tidak boleh menggunakan = NULL atau != NULL untuk mencari nilai NULL dalam lajur.
Dalam MySQL, perbandingan nilai NULL dengan mana-mana nilai lain (walaupun NULL) sentiasa mengembalikan palsu, iaitu, NULL = NULL mengembalikan palsu.
MySQL mengendalikan NULL menggunakan operator IS NULL dan IS NOT NULL.
Nota:
select * , columnName1+ifnull(columnName2,0) from tableName;
columnName1, columnName2 ialah int type Apabila columnName2 mempunyai nilai null, columnName1+columnName2=null, ifnull(columnName2,0) Convert the. nilai null dalam columnName2 hingga 0.
Gunakan nilai NULL dalam command prompt
Contoh berikut menganggap bahawa jadual php_test_tbl dalam php pangkalan data mengandungi dua lajur php_author dan php_count,php_count Masukkan nilai NULL dalam tetapan.
Contoh
Cuba contoh berikut:
Buat jadual data php_test_tbl
mysql> use php; Database changed mysql> create table php_test_tbl -> ( -> php_author varchar(40) NOT NULL, -> php_count INT -> ); Query OK, 0 rows affected (0.05 sec) mysql> INSERT INTO php_test_tbl (php_author, php_count) values ('PHP', 20); mysql> INSERT INTO php_test_tbl (php_author, php_count) values ('PHP中文网', NULL); mysql> INSERT INTO php_test_tbl (php_author,php_count) values ('Google', NULL); mysql> INSERT INTO php_test_tbl (php_author, php_count) values ('FK', 20); mysql> SELECT * from php_test_tbl; +---------------+--------------+ | php_author | php_count | +---------------+--------------+ | PHP | 20 | | php中文网 | NULL | | Google | NULL | | FK | 20 | +---------------+--------------+ 4 rows in set (0.01 sec)
Dalam yang berikut contoh anda Anda boleh melihat bahawa operator = dan != tidak berfungsi:
mysql> SELECT * FROM php_test_tbl WHERE php_count = NULL; Empty set (0.00 sec) mysql> SELECT * FROM php_test_tbl WHERE php_count != NULL; Empty set (0.01 sec)
Untuk mencari sama ada lajur php_test_tbl dalam jadual data adalah NULL, anda mesti menggunakan IS NULL dan IS NOT NULL, seperti yang ditunjukkan dalam contoh berikut:
mysql> SELECT * FROM php_test_tbl WHERE php_count IS NULL; +---------------+--------------+ | php_author | php_count | +---------------+--------------+ | PHP中文网 | NULL | | Google | NULL | +---------------+--------------+ 2 rows in set (0.01 sec) mysql> SELECT * from php_test_tbl WHERE php_count IS NOT NULL; +---------------+--------------+ | php_author | php_count | +---------------+--------------+ | PHP | 20 | | FK | 20 | +---------------+--------------+ 2 rows in set (0.01 sec)
Gunakan skrip PHP untuk mengendalikan nilai NULL
Dalam skrip PHP, anda boleh menggunakan pernyataan if...else untuk memproses sama ada pembolehubah kosong dan menjana pernyataan bersyarat yang sepadan.
Dalam contoh berikut, PHP menetapkan pembolehubah $php_count dan kemudian menggunakan pembolehubah ini untuk membandingkan dengan medan php_count dalam jadual data:
<?php
header("Content-Type: text/html;charset=utf-8");
$dbhost = 'localhost'; alamat hos pelayan mysql
$dbuser = 'root'; // nama pengguna mysql
$dbpass = 'root';
if(! $conn )
{
die( 'Sambungan gagal: ' . mysqli_error($conn));
}
//Tetapkan pengekodan untuk mengelakkan aksara Cina yang kacau
mysqli_query($conn, "set names utf8");
if(isset($runoob_count))
{
$sql = "SELECT php_author, php_count
FROM php_test_tbl
WHERE php_count = $php_count";
}
lain
$sql = "PILIH php_author,php_count
" DARI php_test_tbl
DI MANA php_count IS NULL";
}
mysqli_select_db( $conn, 'php' );<🎜 =qret mys>$ret ( $conn, $sql );
if(! $retval )
{
die('Tidak dapat membaca data : ' .mysqli_error($conn));
}
echo ' <h2>Tapak web PHP Cina ADALAH ujian NULL<h2>';
gema '<table border="1"> ;/td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
echo "<tr>".
"<td> {$row['php_author']} </td> ".
"<td>{$row[' php_count']} </td> ".
"</tr>" ;
}
gema '</table>';
mysqli_close($conn);
?>
Perenderan:
Cadangan tutorial video berkaitan: Pelik NULL