MySQL NULLTraitement des valeurs
Nous savons déjà que MySQL utilise la commande SQL SELECT et la clause WHERE pour lire les données dans la table de données, mais lorsque le fourni Lorsque le champ de condition de requête est NULL, cette commande peut ne pas fonctionner correctement.
Afin de gérer cette situation, MySQL propose trois opérateurs principaux :
IS NULL : Lorsque la valeur de la colonne est NULL, cet opérateur renvoie true.
IS NOT NULL : Lorsque la valeur de la colonne n'est pas NULL, l'opérateur renvoie true.
<=> : Opérateur de comparaison (différent de l'opérateur =), renvoie vrai lorsque les deux valeurs comparées sont NULL.
L'opération de comparaison conditionnelle sur NULL est assez particulière. Vous ne pouvez pas utiliser = NULL ou ! =NULL trouve les valeurs NULL dans la colonne.
Dans MySQL, la comparaison d'une valeur NULL avec toute autre valeur (même NULL) renvoie toujours false, c'est-à-dire que NULL = NULL renvoie false.
MySQL gère NULL à l'aide des opérateurs IS NULL et IS NOT NULL.
Utilisation des valeurs NULL dans l'invite de commande
Dans l'exemple suivant, on suppose que la table tcount_tbl dans le guide de base de données contient deux colonnes, tutoriel_auteur et tutoriel_count, et qu'une valeur NULL est inséré dans tutoriel_count.
Essayez les exemples suivants :
root @ host#mysql -u root -p password; 输入密码:******* mysql> use TUTORIALS;数据库已更改mysql> create table tcount_tbl - >( - > tutorial_author varchar(40)NOT NULL, - > tutorial_count INT - >); 查询OK,0行受影响(0.05秒) mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)值('mahran',20); mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)values('mahnaz',NULL); mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)值('Jen',NULL); mysql> INSERT INTO tcount_tbl - >(tutorial_author,tutorial_count)值('Gill',20); mysql> select * from tcount_tbl; + ----------------- + ---------------- + | tutorial_author | tutorial_count | + ----------------- + ---------------- + | 马赫兰 20 | | mahnaz | NULL | | 仁| NULL | | 鳃| 20 | + ----------------- + ---------------- + 4行(0.00秒) MySQL的>
Dans les exemples suivants, vous pouvez voir = et ! L'opérateur = ne fonctionne pas
mysql> SELECT * FROM tcount_tbl WHERE tutorial_count = NULL; 空置(0.00秒) mysql> SELECT * FROM tcount_tbl WHERE tutorial_count!= NULL; 空置(0.01秒)
Pour demander si la colonne tutoriel_count dans la table de données est NULL, vous devez utiliser IS NULL et IS NOT NULL, comme indiqué dans l'exemple suivant :
mysql> SELECT * FROM tcount_tbl - > WHERE tutorial_count IS NULL; + ----------------- + ---------------- + | tutorial_author | tutorial_count | + ----------------- + ---------------- + | mahnaz | NULL | | 仁| NULL | + ----------------- + ---------------- + 2行(0.00秒) mysql> select * from tcount_tbl - > WHERE tutorial_count is NOT NULL; + ----------------- + ---------------- + | tutorial_author | tutorial_count | + ----------------- + ---------------- + | 马赫兰 20 | | 鳃| 20 | + ----------------- + ---------------- + 2行(0.00秒)
Utiliser le traitement du script PHP pour la valeur NULL
Dans le script PHP, vous pouvez utiliser l'instruction if... else pour traiter si la variable est vide et génère l'instruction conditionnelle correspondante.
Dans l'exemple suivant, PHP définit la variable $tutorial_count, puis utilise cette variable pour comparer avec le champ tutoriel_count dans la table de données :
<?PHP $ dbhost ='localhost:3036'; $ dbuser ='root'; $ dbpass ='rootpassword'; $ conn = mysql_connect($ dbhost,$ dbuser,$ dbpass); if(!$ conn) { die('无法连接:'。mysql_error()); } if(isset($ tutorial_count)) { $ sql ='SELECT tutorial_author,tutorial_count FROM tcount_tbl WHERE tutorial_count = $ tutorial_count'; } 其他 { $ sql ='SELECT tutorial_author,tutorial_count FROM tcount_tbl WHERE tutorial_count IS $ tutorial_count'; } mysql_select_db( '教程'); $ retval = mysql_query($ sql,$ conn); 如果(!$ retval) { die('无法获取数据:'mysql_error()); } while($ row = mysql_fetch_array($ retval,MYSQL_ASSOC)) { echo“作者:{$ row ['tutorial_author']} <br>”。 “Count:{$ row ['tutorial_count']} <br>”。 “--------------------------------结果”; } echo“成功获取数据\ n”; mysql_close($康恩); ?>
[Recommandations associées]
1. Recommandation spéciale : Téléchargement de la version "php Programmer Toolbox" V0.1
2. Tutoriel vidéo mysql en ligne gratuit
3. Informations sur la conception de bases de données
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!