Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果字段为空,请选择其他字段_Mysql - Fatal编程技术网

Mysql 如果字段为空,请选择其他字段

Mysql 如果字段为空,请选择其他字段,mysql,Mysql,我有一张员工桌 id int(11) names varchar(120) family_names varchar(100) nickname varchar(100) 还有一张工作人员的桌子 id int(11) personid int(11) titleid int(11) typeid int(11) at_work datetime status int(11) 我的问题是,我需要生成一份报告,在报告中检查谁在工作

我有一张员工桌

id  int(11) 
names   varchar(120)
family_names    varchar(100)
nickname    varchar(100)
还有一张工作人员的桌子

  id    int(11)
  personid int(11)
  titleid    int(11)
  typeid    int(11)
  at_work   datetime
  status int(11)
我的问题是,我需要生成一份报告,在报告中检查谁在工作,并显示姓名、姓氏和头衔。由于人们是用昵称来称呼的,我需要首先检查昵称是否存在,所以我在这个网站上找到了这个例子

SELECT IF(LENGTH(nickname)>0, nickname, names) FROM staff_list
我将获得昵称或姓名,但这并不能解决我的请求,因为我需要在工作表中搜索mu who_is_,然后找到工作人员并创建该列表

是否可以在select中执行select以获取我需要的三个字段

昵称/姓名、姓氏、头衔

过了一段时间,我想出了怎么做

我找到了解决方案,谢谢你的发帖。这就是我最后要做的

SELECT p.id AS ID, 
   IF(LENGTH(p.nickname)>0, p.nickname, p.names) AS 'Names/Nickname',
   p.family_names AS 'Family name', 
   r.rank AS 'Rank'
   FROM atworklist AS who
   LEFT JOIN stafflist as p on p.id = who.personid   
   LEFT JOIN title AS r ON r.id = p.titleid
   where who.shipid= 2 and who.status in (2,3)
   ORDER BY r.sortorder

对我来说很有魅力

如果你想去掉空值,你可以使用coalesce

select coalesce(nickname, names) from staff_list

如果要检查空字符串,可以通过以下方式执行:

 select case when nickname = '' then names else nickname end from staff_list