Najlepszy samouczek Przetwarzanie wartości NULL MySQL W 2024 r. W tym samouczku możesz dowiedzieć się Wartości NULL w wierszu polecenia,Wykorzystanie przetwarzania skryptu PHP wartość NULL,
Wiemy już, MySQL za pomocą polecenia SQL SELECT z WHERE do odczytywania danych z tabeli danych, ale pola kryteria zapytania podany podczas NULL, komenda może nie działać poprawnie, gdy.
Aby poradzić sobie z tą sprawą, MySQL udostępnia trzy główne podmioty:
O NULL operacja porównania stan jest wyjątkowy. Nie można używać = NULL lub! = NULL znaleźć wartości NULL w kolumnie.
W MySQL, wartości NULL porównać z jakąkolwiek inną wartość (nawet NULL) zawsze zwraca fałsz, czyli NULL = NULL zwraca false.
MySQL zabiegom NULL za pomocą IS NULL i IS NOT NULL operatora.
W poniższym przykładzie założono, że baza danych w3big tabelach tcount_tbl zawierający dwa w3big_author i w3big_count, w3big_count określone wstawić wartości NULL.
Wypróbuj poniższe przykłady:
root@host# mysql -u root -p password; Enter password:******* mysql> use w3big; Database changed mysql> create table tcount_tbl -> ( -> w3big_author varchar(40) NOT NULL, -> w3big_count INT -> ); Query OK, 0 rows affected (0.05 sec) mysql> INSERT INTO tcount_tbl -> (w3big_author, w3big_count) values ('mahran', 20); mysql> INSERT INTO tcount_tbl -> (w3big_author, w3big_count) values ('mahnaz', NULL); mysql> INSERT INTO tcount_tbl -> (w3big_author, w3big_count) values ('Jen', NULL); mysql> INSERT INTO tcount_tbl -> (w3big_author, w3big_count) values ('Gill', 20); mysql> SELECT * from tcount_tbl; +-----------------+----------------+ | w3big_author | w3big_count | +-----------------+----------------+ | mahran | 20 | | mahnaz | NULL | | Jen | NULL | | Gill | 20 | +-----------------+----------------+ 4 rows in set (0.00 sec) mysql>
W poniższym przykładzie widać = a = operator nie działa !:
mysql> SELECT * FROM tcount_tbl WHERE w3big_count = NULL; Empty set (0.00 sec) mysql> SELECT * FROM tcount_tbl WHERE w3big_count != NULL; Empty set (0.01 sec)
Znajdź tabelę danych w3big_count czy kolumna jest NULL, należy użyć IS NULL i IS NOT NULL, następujące przykłady:
mysql> SELECT * FROM tcount_tbl -> WHERE w3big_count IS NULL; +-----------------+----------------+ | w3big_author | w3big_count | +-----------------+----------------+ | mahnaz | NULL | | Jen | NULL | +-----------------+----------------+ 2 rows in set (0.00 sec) mysql> SELECT * from tcount_tbl -> WHERE w3big_count IS NOT NULL; +-----------------+----------------+ | w3big_author | w3big_count | +-----------------+----------------+ | mahran | 20 | | Gill | 20 | +-----------------+----------------+ 2 rows in set (0.00 sec)
skrypty PHP można if pl. else obsłużyć czy zmienna jest pusta, i generuje odpowiedni instrukcji warunkowej.
Poniższe przykłady set $ zmienna w3big_count PHP, a następnie użyć zmiennej z tabeli danych w3big_count odpowiada na porównanie:
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } if( isset($w3big_count )) { $sql = 'SELECT w3big_author, w3big_count FROM tcount_tbl WHERE w3big_count = $w3big_count'; } else { $sql = 'SELECT w3big_author, w3big_count FROM tcount_tbl WHERE w3big_count IS $w3big_count'; } mysql_select_db('w3big'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Author:{$row['w3big_author']} <br> ". "Count: {$row['w3big_count']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>