`
123003473
  • 浏览: 1060015 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

mysql 查询不等于1的所有值的问题

 
阅读更多
我想在mysql 的select * from A where isreg <>'1'
我想将所有值不为1的都找出来。isreg为char型 isreg中有为null的和为0 的,我想把不等于1的找出来,但是找的时候结果为空。找不到想要的结果,请各位帮帮忙


回答1:
select * from A where isreg is null or isreg='0'


回答2:
or
select * from A where ifnull(isreg,'0')='0'



回答3:

SQL code
select *
from A
where isreg <>'1'  and isreg is null


null 的任何运算都为 null (除了 is null, ifnull())


回答4:
http://dev.mysql.com/doc/refman/5.1/zh/tutorial.html#working-with-null


SQL code
3.3.4.6. NULL值操作
NULL值可能令人感到奇怪直到你习惯它。概念上,NULL意味着“没有值”或“未知值”,且它被看作与众不同的值。为了测试NULL,你不能使用算术比较 操作符例如=、<或!=。为了说明它,试试下列查询:

mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
|     NULL |      NULL |     NULL |     NULL |
+----------+-----------+----------+----------+
很显然你不能通过这些比较得到有意义的结果。相反使用IS NULL和IS NOT NULL操作符:

mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
|         0 |             1 |
+-----------+---------------+
请注意在MySQL中,0或 NULL意味着假而其它值意味着真。布尔运算的默认真值是1






MySql 里的IFNULL、NULLIF和ISNULL用法
今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下:

mysql中isnull,ifnull,nullif的用法如下:

isnull(expr) 的用法:
如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。
mysql> select isnull(1+1);
-> 0
mysql> select isnull(1/0);
-> 1
使用= 的null 值对比通常是错误的。

isnull() 函数同 is null比较操作符具有一些相同的特性。请参见有关is null 的说明。

IFNULL(expr1,expr2)的用法:

假如expr1   不为   NULL,则   IFNULL()   的返回值为   expr1;
否则其返回值为   expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

mysql>   SELECT   IFNULL(1,0);  
                  ->   1  
mysql>   SELECT   IFNULL(NULL,10);  
   ->   10  
mysql>   SELECT   IFNULL(1/0,10);  
           ->   10  
mysql>   SELECT  
IFNULL(1/0,'yes');  

            ->   'yes'  

IFNULL(expr1,expr2)的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、   REAL或  
INTEGER。假设一个基于表达式的表的情况,     或MySQL必须在内存储器中储存一个临时表中IFNULL()的返回值:  
CREATE   TABLE   tmp   SELECT   IFNULL(1,'test')   AS   test;  
在这个例子中,测试列的类型为   CHAR(4)。     
NULLIF(expr1,expr2)  的用法: 
如果expr1
=   expr2     成立,那么返回值为NULL,否则返回值为   expr1。这和CASE   WHEN   expr1   =   expr2  
THEN   NULL   ELSE   expr1   END相同。    
mysql>   SELECT  
NULLIF(1,1);  

           ->   NULL  
mysql>   SELECT   NULLIF(1,2);  
            ->   1 
如果参数不相等,则   MySQL   两次求得的值为     expr1  
分享到:
评论

相关推荐

    mysql查询根据列按条件统计总数

    - 使用子查询`b`来统计`t1`表中满足条件的每一组`列1`的数量以及对应的`列2`和`列3`的值。 - 使用`UNION`操作符将子查询`b`的结果与另一个统计查询合并。 - 最后一个查询计算`t2`表中`列1`的数量,并将结果与其他...

    解析mysql不重复字段值求和

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...

    sql查询优化(提高MySQL数据库查询效率的几个技巧)

    SQL 查询优化(提高 MySQL 数据库查询效率的几个技巧) 在 MySQL 数据库中,查询优化是一个非常重要的方面。在实际应用中,高效的查询可以提高整个系统的性能和响应速度。下面我们将介绍几个提高 MySQL 数据库查询...

    mysql数据库全文多库多表查找,查询所有数据库中包含指定字符的数据。

    mysql数据库全文查找,查询所有数据库中包含指定字符的数据。 一、支持功能: 1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定...

    MYSQL查询操作教程

    MYSQL 查询操作教程 MYSQL 查询操作教程是 MYSQL 数据库管理系统中的一种基本操作,用于从数据库中检索和操作数据。本教程将详细介绍 MYSQL 查询操作的基本语法和实例操作。 一、单表选择 MYSQL 查询操作的基本...

    Mysql 时间模糊查询

    模糊查询是指不精确地匹配查询条件的一种查询方式。在MySQL中,模糊查询主要通过`LIKE`关键字实现。例如,查询所有包含“abc”的记录可以使用`SELECT * FROM table WHERE column LIKE '%abc%'`这样的语句。 #### 三...

    mysql数据库sql优化

    全值匹配是指在查询时尽可能地使用索引列的所有部分。例如,在表`staffs`中,创建了一个多列索引`idx_staffs_nameAgePos`,包括`name`、`age`和`pos`三个字段。 - **示例**: - 使用全值匹配查询: ```sql ...

    mysql所有的查询语句详解

    4. **FULL OUTER JOIN**:返回两个表中所有匹配和不匹配的行(MySQL不支持,但可以使用UNION实现类似效果)。 三、聚合函数 MySQL提供了多种聚合函数,用于对一组值进行计算: 1. **COUNT()**:计算非NULL值的...

    mysql问题,常见的mysql面试问题

    ### MySQL常见面试问题详解 #### 1. MySQL简介与特性 - **MySQL**:MySQL是一种关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,目前由Oracle公司维护。它以其高性能、高可靠性和易用性著称,在互联网行业...

    找到并杀掉MySQL查询进程

    ### 找到并杀掉MySQL查询进程 #### 知识点概述 在处理MySQL数据库时,可能会遇到某些查询进程长时间占用资源或者导致系统性能下降的情况。此时,我们需要找到这些进程并将其终止,以确保数据库系统的稳定性和高效...

    C++实现MySQL分页查询

    本篇文章将深入探讨如何利用C++实现MySQL的分页查询功能,这对于处理大量数据时提高系统性能和用户体验至关重要。 首先,我们需要引入MFC(Microsoft Foundation Classes)库,这是一个由Microsoft为Windows平台...

    MySQL查询语句大全

    ### MySQL查询语句大全知识点详解 #### 一、基本数据库操作 **1. 查找当前服务器上存在的数据库** - **语法**: `SHOW DATABASES;` - **用途**: 列出服务器上所有可用的数据库。 **2. 创建数据库** - **语法**: ...

    Mysql查询重复语句

    ### MySQL 查询重复语句详解 在数据库管理与维护过程中,数据的一致性和准确性至关重要。当涉及到数据去重时,MySQL 提供了多种方法来帮助我们有效地处理数据中的重复记录。本文将详细介绍如何利用 MySQL 查询语句...

    两种mysql递归tree查询效率-mysql递归tree

    1. **初始化查询**:从根节点开始,获取所有根节点的信息。 2. **递归查询**:使用递归联合的方式,每次将当前层级的节点与其子节点连接起来。 3. **终止条件**:当没有更多的子节点时停止递归。 **示例SQL**: ```...

    MySQL 查询重复内容只显示一条

    标题“MySQL 查询重复内容只显示一条”涉及到的是在MySQL数据库中如何处理重复数据的问题。在数据分析或数据存储过程中,有时我们需要找出并处理重复的记录,只保留一条作为代表。这通常可以通过聚合函数和分组来...

    mysql 查询本周、上周、本月

    根据提供的标题、描述以及部分代码内容,我们可以总结出以下几个MySQL查询相关的知识点: ### 1. 查询本周数据 在MySQL中,可以通过`YEARWEEK()`函数来获取某日期对应的年和周的信息。为了查询本周的数据,可以...

    MySQL慢查询日志

    3. **故障排查**:当数据库出现性能问题时,可以通过慢查询日志来定位导致问题的具体查询。 #### 三、慢查询日志的配置与启用 慢查询日志可以通过MySQL的配置文件进行设置,具体步骤如下: 1. **查找配置文件**:...

    mysql 查询行列转换

    MySQL 不像某些其他数据库系统(如 Oracle 和 SQL Server)那样内置了 PIVOT 操作,但我们可以通过子查询和 GROUP BY 来模拟这个功能。例如,将某个时间序列的数据从行转换为列,可以先通过 GROUP BY 时间段生成子...

    mysql数据库查询语句

    ### MySQL数据库查询语句及相关操作知识点 #### 一、MySQL基础命令 1. **查看所有数据库** - `SHOW DATABASES;` 该命令用于列出MySQL服务器上所有可用的数据库。 2. **创建数据库** - `CREATE DATABASE ...

    如何使用MySQL查询某个列中相同值的数量统计

    数据现在是这样的,我想确定出type列中的... 您可能感兴趣的文章:MySQL 统计查询实现代码MYSQL中有关SUM字段按条件统计使用IF函数(case)问题利用MySQL统计一列中不同值的数量方法示例单个select语句实现MySQL查询统计次

Global site tag (gtag.js) - Google Analytics