想要一个空行,其中不存在任何数据
你好。这是关于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来在他们的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
select emails from table where email in (dog, frog, cat, tiger, lizard) OR email IS NULL
确保提供IN (...)
的值作为字符串提供。