sql >> Database >  >> RDS >> Mysql

Herhaal rijen in het resultaat op basis van een geheel getal in kolom

Ik denk dat het beter is om het niet met query (SQL) op te lossen. Er is een generatiefunctie, maar de prestaties zijn slecht.

U moet uw model wijzigen (altijd 1 hoeveelheid opslaan), of het in backend verwerken (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)

De samengevoegde subquery herhaalde getallen van 0 tot 99999, het is het maximale aantal branden. De join-herhaling door de teller 0... hoeveelheid-1-waarden.



  1. Hoe u SHOW LOCALES uitvoert in MariaDB

  2. Enkele vrij eenvoudige sommen doen met verschillende tabellen

  3. Kunt u MySQL niet starten in XAMPP?

  4. PHP en MySQL trekken seconden van tijd af