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查询--对查询所得的字段判断并且重新赋值的主要内容,如果未能解决你的问题,请参考以下文章