¿Cómo maneja la base de datos MySQL las consultas de valor no nulo? MySQL no es una declaración de selección nula

base de datos mysql¿Cómo manejar consultas de valor no nulo?MySQL no es declaración de selección nula

Manejo nulo en MySQL

Ya sabemos que MySQL usa el comando SQL SELECT y la cláusula WHERE para leer los datos en la tabla de datos, pero cuando el campo de condición de consulta proporcionado es NULL, es posible que el comando no funcione correctamente.

Para manejar esta situación, MySQL proporciona tres operadores principales:

  • ES NULO:Este operador devuelve verdadero cuando el valor de la columna es NULL.
  • NO ES NULO:El operador devuelve verdadero cuando el valor de la columna no es NULL.
  • <=>:  El operador de comparación (a diferencia del operador =) devuelve verdadero cuando los dos valores comparados son NULL.

Las operaciones de comparación condicional en NULL son especiales.No puede usar = NULL o ! =NULL encuentra valores NULL en la columna.

En MySQL, la comparación de un valor NULL con cualquier otro valor (incluso NULL) siempre devuelve falso, es decir, NULL = NULL devuelve falso.

NULL se maneja en MySQL usando los operadores IS NULL y IS NOT NULL.


Use el valor NULL en el símbolo del sistema

En el siguiente ejemplo, la tabla chenweiliang_test_tbl en la base de datos chenweiliang está configurada para contener dos columnas, chenweiliang_author y chenweiliang_count, y los valores NULL están configurados para insertarse en chenweiliang_count.

Ejemplo

Pruebe los siguientes ejemplos:

Crear tabla de datos chenweiliang_test_tbl

root @ host #mysql -u root -p password; 输入密码:*******
 mysql > 使用chenweiliang ;
数据库改变了mysql > create table chenweiliang_test_tbl 
 - > (
 - > chenweiliang_author varchar (40 )NOT NULL , - > chenweiliang_count INT 
 - > );
查询OK ,0 行受影响(0.05 秒)mysql >
 
 
INSERT INTO chenweiliang_test_tbl (chenweiliang_author ,chenweiliang_count )values (' chenweiliang ' ,20 );
mysql > INSERT INTO chenweiliang_test_tbl (chenweiliang_author ,chenweiliang_count )values (' 陈沩亮博客' ,NULL );
mysql > INSERT INTO chenweiliang_test_tbl (chenweiliang_author ,chenweiliang_count )values ( ' Google ' ,NULL );
mysql > INSERT INTO chenweiliang_test_tbl (chenweiliang_author ,chenweiliang_count )values (' FK ' ,20 );
 
mysql > SELECT * from chenweiliang_test_tbl ; + --------------- + -------------- + | chenweiliang_author | chenweiliang_count | + --------------- + -------------- + | chenweiliang | 20 | | 陈沩亮博客| NULL | | Google | NULL | | FK | 20 | + --------------- + -------------- +
 4 行中集合(0.01 秒) 

En el siguiente ejemplo puedes ver = y ! El operador = no funciona:

mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count = NULL ;
空集(0.00 秒)mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count != NULL ;
空集(0.01 秒)

Para averiguar si la columna chenweiliang_test_tbl en la tabla de datos es NULL, debe usarES NULONO ES NULO, el siguiente ejemplo:

mysql > SELECT * FROM chenweiliang_test_tbl WHERE chenweiliang_count IS NULL ; + --------------- + -------------- + | chenweiliang_author | chenweiliang_count | + --------------- + -------------- + | 陈沩亮博客| NULL | | Google | NULL | + --------------- + -------------- +
 2 行中的组(0.01 秒)的MySQL > SELECT * 从chenweiliang_test_tbl WHERE chenweiliang_count IS NOT 空值 
 
 ; + --------------- + -------------- + | chenweiliang_author | chenweiliang_count | + --------------- + -------------- + | chenweiliang | 20 | | FK | 20 | + --------------- + -------------- +
 2 行中的组(0.01 秒) 

Manejo de valores NULL con script PHP

En el script PHP, puede usar la declaración if...else para procesar si la variable está vacía y generar la declaración condicional correspondiente.

En el siguiente ejemplo, PHP establece la variable $chenweiliang_count y luego usa esa variable para compararla con el campo chenweiliang_count en la tabla de datos:

MySQL ORDEN POR prueba:

<?
php $ dbhost = ' localhost:3306 ' ; // mysql服务器主机地址

$ dbuser = ' root ' ; // mysql用户名
$ dbpass = ' 123456 ' ; // mysql用户名密码
$ conn = mysqli_connect ($ dbhost ,$ dbuser ,$ dbpass );
如果(!$ conn ){ die (' 连接失败:' 。mysqli_error ($ conn ));
} // 设置编码,防止中文乱码

mysqli_query ($ conn ,“ set names utf8 ” );
 
if (isset ($ chenweiliang_count )){ $ sql = “ SELECT chenweiliang_author,chenweiliang_count FROM chenweiliang_test_tbl WHER chenweiliang_count = $ chenweiliang_count ” ;
} else { $ sql = “ SELECT chenweiliang_author,chenweiliang_count FROM chenweiliang_test_tbl WHER chenweiliang_count IS NULL ” ;
} mysqli_select_db ($ conn ,'


 chenweiliang ' );
$ retval = mysqli_query ($ conn ,$ sql );
if (!$ retval ){ die (' 无法读取数据:' 。mysqli_error ($ conn ));
} echo ' <h2>陈沩亮博客IS NULL测试<h2> ' ;
echo ' <table border =“1”> <tr> <td>作者</ td> <td>登陆次数</ td> </ tr> ' ;

 $ retval ,MYSQL_ASSOC )){ echo “ <tr> ” 。
 “ <td> {$ row ['chenweiliang_author']} </ td> ” 。
 “ <td> {$ row ['chenweiliang_count']} </ td> ” 。
 “ </ tr> ” ;
} echo ' </ table> ' ;
mysqli_close ($ conn );
?>

 

Esperanza Chen Weiliang Blog ( https://www.chenweiliang.com/ ) compartió "¿Cómo maneja la base de datos MySQL las consultas de valor no nulo? MySQL no es una declaración de selección nula" para ayudarlo.

Bienvenido a compartir el enlace de este artículo:https://www.chenweiliang.com/cwl-491.html

¡Bienvenido al canal de Telegram del blog de Chen Weiliang para obtener las últimas actualizaciones!

🔔 ¡Sea el primero en obtener la valiosa "Guía de uso de la herramienta de inteligencia artificial para marketing de contenidos ChatGPT" en el directorio superior del canal! 🌟
📚 Esta guía contiene un gran valor. 🌟Esta es una oportunidad única, ¡no la pierdas! ⏰⌛💨
¡Comparte y dale me gusta si te gusta!
¡Su compartir y Me gusta son nuestra motivación continua!

 

发表 评论

Su dirección de correo electrónico no será publicada. 项 已 用 * 标注

滚动 到 顶部