Maison  >  Article  >  base de données  >  Tutoriel d'exemple de traitement de valeur NULL MySQL

Tutoriel d'exemple de traitement de valeur NULL MySQL

零下一度
零下一度original
2017-05-15 10:31:241314parcourir

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.

96b4fef55684b9312718d5de63fb7121 : 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 =&#39;localhost:3036&#39;;
$ dbuser =&#39;root&#39;;
$ dbpass =&#39;rootpassword&#39;;
$ conn = mysql_connect($ dbhost,$ dbuser,$ dbpass);
if(!$ conn)
{
  die(&#39;无法连接:&#39;。mysql_error());
}
if(isset($ tutorial_count))
{
   $ sql =&#39;SELECT tutorial_author,tutorial_count
           FROM tcount_tbl
           WHERE tutorial_count = $ tutorial_count&#39;;
}
其他
{
   $ sql =&#39;SELECT tutorial_author,tutorial_count
           FROM tcount_tbl
           WHERE tutorial_count IS $ tutorial_count&#39;;
}
mysql_select_db( &#39;教程&#39;);
$ retval = mysql_query($ sql,$ conn);
如果(!$ retval)
{
  die(&#39;无法获取数据:&#39;mysql_error());
}
while($ row = mysql_fetch_array($ retval,MYSQL_ASSOC))
{
    echo“作者:{$ row [&#39;tutorial_author&#39;]} <br>”。
         “Count:{$ row [&#39;tutorial_count&#39;]} <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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn