代码之家  ›  专栏  ›  技术社区  ›  maryyyyyyy

如何在MySQL中显示ID

  •  1
  • maryyyyyyy  · 技术社区  · 6 年前

    所以我有一个带有ID和名称的表。 我有一个条件

    name = 'John'
    name = 'Ariel'
    name = 'Ariel'
    name = 'Mary'
    name = 'Mary'
    

    我想显示它的ID,所以输出应该是这样的:

    id  name
    1   John 
    1   John
    3   Ariel
    3   Ariel
    5   Mary
    5   Mary
    

    我是这样做的:

    select id, name from users where
    name = 'John' OR
    name = 'John' OR
    name = 'Ariel' OR
    name = 'Ariel' OR
    name = 'Mary' OR
    name = 'Mary';
    

    也试过了

    where name in ('John','John','Ariel','Ariel','Mary','Mary');
    

    但它总是这样输出:

    id  name
    1   John
    3   Ariel
    5   Mary
    

    那么,即使条件重复,如何显示ID呢? 我真的想展示这样的东西:

    身份证名
    1约翰
    1约翰
    3阿里尔
    3阿里尔
    5玛丽
    5玛丽
    

    或者这是可能的?

    注:我没有重复的记录。

    1 回复  |  直到 6 年前
        1
  •  2
  •   ScaisEdge    6 年前

    您可以尝试在Suqyery上使用基于Union All的内部联接。

    select m.id, m.name 
    from my_table  m 
    inner join (
    select 'John' as name  from dual 
    union all 
    select 'John' from dual 
    union all 
    select 'Ariel' from dual 
    union all 
    select 'Ariel' from dual 
    union all 
    select 'Mary' from dual 
    union all 
    select 'Mary' from dual 
    ) t on t.name =m.name