MySQL查询--对查询所得的字段判断并且重新赋值

Posted 花时

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL查询--对查询所得的字段判断并且重新赋值相关的知识,希望对你有一定的参考价值。

需求

当父节点id等于0时,父节点的名称显示为"一级系统部件"

解决方案

使用case when then

语法

CASE 字段

WHEN 条件1 THEN 值 1

WHEN 条件2  THEN 值 2

   [WHEN ...] 

   [ELSE 值] 

END  别名

实例

当父节点id等于0时,父节点的名称显示为"一级系统部件",其他显示为对应的名称

SELECT
    vc.id AS id,
    vc.`name` AS `name`,
    vc.parent_id AS parentId,
    CASE vc.parent_id WHEN 0 THEN \'一级系统部件\' ELSE a.`name` END parentName,
    vc.material_number AS materialNumber,
    vc.structure_type AS structureType,
    sd.`name` AS structureTypeName,
    vc.type AS type,
    vc.sort AS sort,
    vc.line_id AS lineId,
    b.`name` AS lineName,
    vc.`level` AS `level`,
    vc.remark AS remark 
FROM
    ((
            vehicle_component AS vc
            LEFT JOIN sys_dict AS sd ON sd.`code` = vc.structure_type 
            )
        LEFT JOIN vehicle_component AS a ON a.id = vc.parent_id 
    )
    LEFT JOIN line AS b ON b.id = vc.line_id 
WHERE
    vc.`status` = 1 
    AND vc.line_id = 49

mysql当查询某字段结果为空并赋值

1 代码

1.1 当当前字段为空,查询结果返回“none”,并且统计出现频率 

select case when 字段 is null then \'none\' else 字段 end  as 字段, count(1) as counts from 表 group by 字段;   

1.2 当当前字段为空字符串,查询结果返回“none”,并且统计出现频率 

select case when 字段= \'\' then \'none\' else 字段 end  as 字段, count(1) as counts from 表 group by 字段;   

1.3 当当前字段为空,查询结果返回“none”

select case when 字段 is null then \'none\' else 字段 end  as 字段 from 表;

1.4 当当前字段为空字符,查询结果返回“none”

select case when 字段= \'\' then \'none\' else 字段 end  as 字段 from 表;

2 小结

仅作为记录使用,mysql其它相关命令有isnull,ifnull and  nullif。

link: MySql 里的IFNULL、NULLIF和ISNULL用法

 

以上是关于MySQL查询--对查询所得的字段判断并且重新赋值的主要内容,如果未能解决你的问题,请参考以下文章

mysql 查询结果把一个字段的值赋值给另一个字段的键值

mysql中的几种判断语句

SQL查询中,如何判断一个字符串字段的内容的长度

mysql 对返回的值是null进行判断和重新赋值

mysql数据库查询操作

mysql 如何查询表中字段,并显示出来?