sql >> Databasteknik >  >> RDS >> Mysql

Upprepa rader i resultatet baserat på ett heltalsvärde i kolumnen

Jag tror att det är bättre att inte lösa det med query(SQL). Det finns en generationsfunktion, men dess prestanda är dålig.

Du måste ändra din modell (lagra alltid 1 kvantitet), eller bearbeta den i backend(java/c/stb.)

Select id, 
       1 as quantity, 
       price_charged 
from table_name t
JOIN 
(SELECT e*10000+d*1000+c*100+b*10+a n FROM
(select 0 a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t1,
(select 0 b union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t2,
(select 0 c union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t3,
(select 0 d union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t4,
(select 0 e union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t5) counter
ON (counter.n<=t.quantity)

Den förenade underfrågan upprepade siffror från 0 till 99999, det är max för kvantitet. Sammanfogningsupprepningen av räknaren 0... kvantitet-1 värden.



  1. Jämför Percona XtraBackup med MySQL Enterprise Backup:Del ett

  2. Skala anslutningar i PostgreSQL med Connection Pooling

  3. Hur ansluter och hämtar jag data från Google Cloud SQL med PHP?

  4. Importera data från Microsoft SQL (.MDF)-fil till MySQL