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

预期的结果是不可能的。你不能指望MySQL会 按照所选记录在 IN(( 中的顺序返回所选记录 算子。

所以我认为当你把你想要的结果改变成你知道在表格中找不到的东西时,你最好,我想你正在寻找。

查询

 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 |

查看演示

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

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

最新更新