我想对SQL进行特殊查询,但无法获得所需的结果。

我的基本查询是:

select * from TABLE_NAME where COLUMN_NAME_1 in ('ABC1', 'ABC98', 'ABC97', 'ABC2', 'ABC3')


假设表中没有项目“ ABC1”。我希望我的查询显示它。另外,我希望查询以我询问的顺序显示项目(ABC1,ABC98,ABC97等)。

我附上一张图片,使您可以更好地了解我想要的东西。

mysql - SQL搜索按请求的相同顺序显示未找到的项目-LMLPHP

提前致谢

最佳答案

您需要使用外部joinunion all。一种方法如下所示:

select v.col1, . . .
from (select 'ABC1' as col1, 1 as ord union all
      select 'ABC98', 2  union all
      . . .
     ) left join
    TABLE_NAME t
    on t.column_name_1 = v.col1
order by ord;


值列表的确切语法因数据库而异。以上适用于MySQL。 Oracle将在子查询中要求from dual

关于mysql - SQL搜索按请求的相同顺序显示未找到的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47288369/

10-11 05:21