帮助mysql IN子句

时间:2011-04-11 08:49:57

标签: mysql

我有一个带有数字ID和条形码的表,需要将给定的ID列表转换为相应的条形码列表。但是,如果我需要为每个ID提供一个条形码,即使存在多个给定ID也是如此。 我尝试的第一件事是

SELECT条形码来自prod WHERE prodID IN(76,76,76,88,88);

但我只有2个条形码(一个用于ID 76,一个用于ID 88),而不是我需要的5个。

如何在不必为每个ID运行一个查询的情况下知道如何做到这一点?

2 个答案:

答案 0 :(得分:1)

我会在接收结果的代码中处理它。在这里得到5个结果是没有意义的,因为你已经拥有了你要求的所有信息:prodID 76和88的条形码

答案 1 :(得分:1)

我假设您需要为给定示例返回5行,无论它们是否是相同的prodID。

一种解决方案是使用即时创建的表格加入您的表格,返回您需要的所有prodID。

SELECT  p.Barcode 
FROM    prod p
        INNER JOIN (
          SELECT 76 AS prodID
          UNION ALL SELECT 76 
          UNION ALL SELECT 76 
          UNION ALL SELECT 88
          UNION ALL SELECT 88
        ) i ON i.prodID = p.prodID