MYSQL,包含空结果

时间:2019-02-08 15:57:18

标签: mysql

想要一个没有数据的空行

你好这是关于MySQL Workbench 6.3的。

我正在尝试为我的select语句中列出的每个项目返回结果列表,其中包括那些实际上不存在的项目。因此,如果我在select语句中列出了5个项目,而只有3个存在,我想返回5行,3个包含数据的实际行和2个仅显示null的行。有人可以告诉我如何在下面编辑我的查询以显示吗?谢谢 !

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

实际结果(仅显示实际存在的3封电子邮件)

dog
cat
tiger

所需结果

dog
null
cat
tiger
null

2 个答案:

答案 0 :(得分:1)

  

不可能达到预期的结果。   以它们进入IN()的顺序返回所选记录   运算符。

因此,我认为当您将所需结果更改为表中未找到某些提示的东西时,我认为您正在寻找更好的东西。

查询

G.nodes = {0: {'name': 'a'}, 1: {'name': 'b'}, 2: {'name': 'c'}, 3: {'name': 'd'}}

结果

 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

请参阅demo

答案 1 :(得分:0)

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

确保为IN (...)提供的值以字符串形式提供。