使用mysql中的select语句替换sql中的空值?

Posted

技术标签:

【中文标题】使用mysql中的select语句替换sql中的空值?【英文标题】:Replace nulls values in sql using select statement in mysql? 【发布时间】:2012-03-26 18:21:33 【问题描述】:

如何做到这一点? 使用 select 语句可以编写什么查询,其中所有空值都应替换为 123?

我知道我们可以使用, update tablename set fieldname = "123" where fieldname is null;

但不能使用 select 语句。

【问题讨论】:

更新表名 set fieldname = "123" where fieldname is null; 我知道这个功能,但是如何使用select语句来替换空值? 【参考方案1】:

mysql 中替换 NULL 值有很多选择:

CASE

select case 
    when fieldname is null then '123' 
    else fieldname end as fieldname 
from tablename 

COALESCE

select coalesce(fieldname, '123') as fieldname 
from tablename 

IFNULL

select ifnull(fieldname, '123') as fieldname 
from tablename 

【讨论】:

是的,这就是我想要的。谢谢。也可以使用 select 语句编写查询,我们希望所有 NULL 值最后都使用 Order By。 这个答案对其他数据库也很有用。例如,COALESCE 和 IFNULL 都存在于 SQLite 中并按预期工作。 注意:IFNULL 仅适用于 MySql。如果您使用的是 MS Access 或 SQL Server,那么您正在寻找 ISNULL,如果您使用的是 Oracle,那么您正在寻找 NVL。来源:w3schools.com/sql/sql_isnull.asp @Tyler 小心笼统的陈述,ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/sqlref/src/tpc/… 如果其他人正在使用 ScannerVision(可能是未来的我),请使用 COALESCE。【参考方案2】:

有一个语句叫 IFNULL,它接受所有输入值,并返回第一个非 NULL 值。

示例:

select IFNULL(column, 1) FROM table;

http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_ifnull

【讨论】:

这回答了这个问题,但重要的是要注意 IFNULL 只接受两个参数。 COLAESCE(这是一个 MSSQL 功能)接受任意数量的输入值并返回第一个非空值。【参考方案3】:

我认为您正在寻找 IFNULL 函数 当字段返回 null 时,IFNULL(field, 0) 将返回 0

【讨论】:

【参考方案4】:

需要一个 UPDATE 语句来更新表中的数据。您不能使用 SELECT 语句来执行此操作。

【讨论】:

我认为他想修改查询的输出,而不是实际数据。 啊,看来我误解了这个问题:-( 没关系 Exupery。 RedFilter 给出了答案

以上是关于使用mysql中的select语句替换sql中的空值?的主要内容,如果未能解决你的问题,请参考以下文章

检查 MS Access SQL 语句中的空值

怎样把一条SQL语句查询出的结果集中的空值替换成0

在这个帖子"如何写sql语句去掉oracle返回结果中的空值(NULL)"中看见你的回答,不是很理解具体怎么使用?

将数据插入 MySQL 数据库时使用 PHP 替换 CSV 文件中的空值

如何动态替换sql中的表名

PHP PDO SQL Server Select语句不替换问号