找到mysql返回记录并显示哪些不是

时间:2017-06-13 20:54:27

标签: mysql mysqli

以下查询将搜索记录并仅返回找到的记录:

"SELECT number, user, date FROM table1 WHERE number IN ('item1','item2')"

结果返回:

| NUMBER | USER | DATE |
------------------------
| item1  | you  | 11-2 |
------------------------

item1是在2个请求中找到的唯一记录。

即使在表格中找不到所有项目,有没有办法归还所有项目?

我试图返回这样的结果:

| NUMBER | USER | DATE |
------------------------
| item1  | you  | 11-2 |
------------------------
| item2  | not found   |
------------------------

我想模仿像FEDEX跟踪网站这样的东西。您最多可以输入30个跟踪号码,它将识别没有返回结果的号码。

我确实提出了类似的问题,但是我希望熟悉mysql的人可以回答这个问题。

1 个答案:

答案 0 :(得分:1)

您可以在此方案中使用CASE LOGIC:

Select distinct A.number
,CASE WHEN b.user is null then 'not found' ELSE b.user END as USER
,CASE WHEN b.date is null then 'not found' ELSE CAST(b.user as VARCHAR(10)) END as DATE
FROM 
(
Select 'item1' as number
UNION
Select 'item2' as number 
) A
LEFT OUTER JOIN 
FROM table1 b
ON A.number = b.number