选择重复某些计数的行

时间:2013-09-04 07:18:14

标签: mysql sql

SO,

我在MySQL DBMS中有一个关于查询的问题。我有表repeats的数据,如:

+--------+-----+
| record | num |
+--------+-----+
|  foo   |  2  |
+--------+-----+
|  bar   |  3  |
+--------+-----+
|  baz   |  1  |
+--------+-----+

此处record字段包含一些数据(不相关,让它成为简单的字符串),num字段包含结果集中当前行的重复次数。所以,我想导致:

foo
foo
bar
bar
bar
baz

即。 'foo'重复'bar'次,'baz' - 三次,CREATE TABLE `natural` ( `id` int(11) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB - 一次。

好的,现在我试过了。我创建了一个表:

1

- 然后填充自然数字,从MAX(num)repeats来自SELECT `repeats`.record FROM `natural` LEFT JOIN `repeats` ON `natural`.id<=`repeats`.num WHERE `repeats`.record IS NOT NULL 表。在此之后,我可以通过以下方式实现我的目标:

natural

- 这很好用,但我不想使用{{1}}表。所以,我的问题是:是否有可能通过在单个SQL查询中重复行来实现我的目标,而无需创建临时数据结构? (因为它是MySQL,带变量的技巧也适合 - 我现在根本不知道如何做到这一点)。但是,回答'不,这是不可能的,因为......'也会受到欢迎。

我还怀疑这是一个“常见”问题,但遗憾的是没有找到任何相应的信息。更新:here is类似的问题(但同时 - 不是完全相似,因为它也会导致我想避免的序列生成问题)

0 个答案:

没有答案