MYSQL,包括空结果

问题描述 投票:0回答:2

想要一个空行,其中不存在任何数据

你好。这是关于MySQL工作台6.3。

我试图返回结果的列表中选择我的声明中列出的每个项目,其中将包括那些实际上并不存在的项目。所以,如果我列出我的select语句5个项目,只有3存在,我想获得5行返回,数据3个的实际行和2个排,仅显示为空。可有人请告诉我如何编辑我下面的查询,以显示这个?谢谢 !

select emails from table where email in (dog, frog, cat, tiger, lizard);

实际结果(只有3封电子邮件是实际存在的节目)

dog
cat
tiger

期望的结果

dog
null
cat
tiger
null
mysql
2个回答
1
投票

期望的结果是不可能的。你不能指望MySQL来在他们的IN()操作符去了顺序返回选定的记录。

所以我觉得你最好当你改变你知道sometiming没有在表中找到了想要的结果,我认为你正在寻找。

询问

 SELECT 
    search_emails.email 
  , (
      CASE
         WHEN t.email IS NOT NULL
         THEN 'true' ELSE 'false' 
      END
    ) AS found
FROM (
  SELECT 'dog' AS email
  UNION
  SELECT 'frog' AS email
  UNION 
  SELECT 'cat' AS email
  UNION 
  SELECT 'tiger' AS email
  UNION 
  SELECT 'lizard' AS email
) AS search_emails 
LEFT JOIN 
 t
ON
 t.email = search_emails.email

结果

| email  | found |
| ------ | ----- |
| dog    | true  |
| cat    | true  |
| tiger  | true  |
| frog   | false |
| lizard | false |

看到demo


0
投票
select emails from table where email in (dog, frog, cat, tiger, lizard) OR email IS NULL

确保提供IN (...)的值作为字符串提供。

© www.soinside.com 2019 - 2024. All rights reserved.