这看起来应该是相当普遍的事情,所以这可能就像为我描述的内容提供正确的词汇表一样简单。重复运行旁边的MySQL结果中的数字
我想返回查询结果和一列我想回到的1,2的重复数序列,3
所需的结果集:
Num Result
---------------
1 result1
2 result2
3 result3
1 result4
2 result5
现在我可以返回基本的三个数字的基本列表:
SELECT @ROW := @ROW + 1 AS ROW FROM 'use any table with data in it' t join (SELECT @ROW := 0) t2 LIMIT 3
我只是找不到一种方法将这与我的查询混合,以返回我想要的结果。我想出的最好的方法是返回一个重复的1,2,3,但重复查询每个数字中的每个项目(如您所期望的)。
Num Result
---------------
1 result1
2 result1
3 result1
1 result2
2 result2
有关如何实现此目的的任何想法?
编辑:
CREATE TABLE Results (Result varchar(10));
INSERT INTO Results (`Result`) VALUES ('result1');
INSERT INTO Results (`Result`) VALUES ('result2');
INSERT INTO Results (`Result`) VALUES ('result3');
INSERT INTO Results (`Result`) VALUES ('result4');
INSERT INTO Results (`Result`) VALUES ('result5');
CREATE TABLE Randoms (Random varchar(10));
INSERT INTO Randoms (`Random`) VALUES ('whatever1');
INSERT INTO Randoms (`Random`) VALUES ('whatever2');
INSERT INTO Randoms (`Random`) VALUES ('whatever3');
--Initial Query
SELECT Result
FROM Results
ORDER BY Result ASC;
--Closest I've come (not close enough)
SELECT b.Num,
a.Result
FROM Results a,
(SELECT @ROW := @ROW + 1 AS Num FROM Randoms t join (SELECT @ROW := 0) t2 LIMIT 3) b
ORDER BY a.Result ASC;
如果您愿意,请考虑遵循以下简单的两步操作步骤:1.如果您尚未这样做,请提供适当的DDL(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。 – Strawberry 2014-08-31 12:05:59
在过去的45分钟内,我了解到我对SQLfiddle有着单一的仇恨。作为替代方案,我还包括重新创建我希望纠正的失败场景所需的SQL。希望这足以解决问题。我希望我的原始预期结果集足够了。 – ashcanschool 2014-08-31 12:53:29
什么是randoms位? – Strawberry 2014-08-31 13:18:23