2013-10-24 82 views
1

我有这样的查询:MYSQL选择多次同一行

SELECT id, header, title, price_obm, packs 
FROM obm 
WHERE id 
IN (2, 12, 10, 2, 10) 
ORDER BY FIELD(id, 2, 12, 10, 2, 10) 

现在,我需要输出多次相同的行(2,10),其可能会发生变化(它可以是任何数量)。

我该怎么做?

输出例如:

id | header | title | price_obm | packs 
2 | head2 | tit2 | price2 | p2 
12 | head12 | tit12 | price12 | p12 
10 | head10 | tit10 | price10 | p10 
2 | head2 | tit2 | price2 | p2 
10 | head10 | tit10 | price10 | p10 
+1

为什么你想这样做?尽管如此,你可以用同样的查询来“联合所有”,但是要做什么呢? – Antoniossss

+0

请显示样本数据和输出,以及推理。你的问题不是很清楚。 –

+0

@MarcusAdams更新了问题。 – Xriuk

回答

-1

您可以通过使用关键字UNION实现这一目标。 您可以找到示例Here

+0

为什么低估? –

+0

邓诺是谁,但也许是因为我提到它作为评论? – Antoniossss

+0

@Rohit Vyas,不适合我... – Xriuk

4

使用您正在使用的任何编程语言对结果集进行后处理,以对数据进行后处理以进行展示。不要让MySQL做所有的工作。

单个查询无法产生您所需的确切结果,因为ORDER BY子句将始终将具有共同的id的项目排在彼此的旁边。

+0

为什么?我很难用php来后处理数据,我需要MYSQL来为我做这件事 – Xriuk