您可以使用“数字”表(适用于各种操作):
CREATE TABLE num( i UNSIGNED INT NOT NULL, PRIMARY KEY (i)) ;INSERT INTO num (i)VALUES (1), (2), ..., (1000000) ;
然后:
SELECt t.id, t.nameFROM tableX AS t JOIN num ON num.i <= t."count"
警告
:这种方法当然有局限性。一旦
count列中的值超过Numbers表中存储的最大值,查询将不会生成所有需要的行。如果
count列中的值是无界的,则仅迭代或递归解决方案(如其他两个答案)可以工作。



