mysql查询获取每个给定键的记录

h9vpoimq  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(317)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

两年前关门了。
改进这个问题
我正在尝试使用mysql select查询获取每个给定id的记录。如。

SELECT NAME 
FROM employee 
WHERE (emp_id) IN (212,213,312,212,213,414,515);

我得到的结果如下-

Name
A
B
C
D
E

我需要以下输出-

NAME
A
B
C
A
B
D
E

你知道吗?

fkaflof6

fkaflof61#

你的档案里有重复的 IN 列出要在结果中复制的内容。 WHERE 子句不与行数相乘,它们只是过滤。另一种方法是 JOIN ,但您需要一个值表。
所以,构造一个:

SELECT NAME 
FROM employee JOIN
     (SELECT 212 as emp_id, 1 as ord UNION ALL
      SELECT 213 as emp_id, 2 as ord UNION ALL
      SELECT 312 as emp_id, 3 as ord UNION ALL
      SELECT 212 as emp_id, 4 as ord UNION ALL
      SELECT 213 as emp_id, 5 as ord UNION ALL
      SELECT 414 as emp_id, 6 as ord UNION ALL
      SELECT 515 as emp_id, 7 as ord
     ) v
     USING (emp_id)
ORDER BY v.ord;

我注意到你想维持秩序。除非显式使用 ORDER BY .

相关问题