Heim >Datenbank >MySQL-Tutorial >MySQL verwendet numerische Hilfstabellen, um komplexe Spaltenänderungen und Zeilen zu implementieren
Eines Tages schickte ein Internetnutzer in einem Kreis auf QQ eine Nachricht mit der Bitte um Hilfe:
PropID-Name Betrag
3 Yuanbao 2
2 Ledou 3
Können Sie die Ausgabe in SQL schreiben, d. h. die Anzahl der Einträge kopieren, die dem Betrag entsprechen:
PropID-Name
3 Yuanbao
3 Yuanbao
2 Ledou
2 Ledou
2 Le Dou
[Anmerkung]:
3 Yuanbao 2
Anmerkung dass die letzte Spalte 2 ist, das heißt, es gibt 2 solcher Datensätze. Es sollte
3 Yuanbao
3 Yuanbao
werden es direkt mit wiederholten Reihen, also Nach diesem Beispiel, 2 Le Dou 3, ist es notwendig, 3 Datensätze wie folgt zu wiederholen:
2 Le Dou
2 Le Dou
2 Le Dou
Nach einiger Recherche konnte ich es nicht herausfinden, indem ich die normale Gruppierung nach Summe bzw. von Fall zu Fall verwendete, also musste ich meine Meinung ändern Ich war eine Weile aufgehängt, also sprach ich mit dem Internetnutzer Mr.W., der die Idee zu digitalen Hilfstischen hatte.
OK, fertig, die SQL lautet wie folgt:
select t1.propid,t1.name from tb t1,(select 1 as num union select 2 as num union select 3 as num) t2 wobei t1.amount>= t2.num order by 1;
middle,(select 1 as num union select 2 as num Union select 3 as num ) t2 part
Am besten erstellen Sie eine weitere num-Einspalten-Hilfstabelle, erhöhen Sie von 1 auf N, geben Sie einfach Zehntausende an und dann die Verwandte Abfragen werden bequemer sein. Ausgehend von der SQL der Selbstverbindung scheint select nicht die Funktion zu haben, Zahlen in einer Schleife zu generieren. Wie in den folgenden Tabellennummern gezeigt
Wenn Sie hier einen Freund sehen, der eine bessere Implementierungsmethode hat, teilen Sie ihn bitte mit.
Das Obige ist der Inhalt von MySQL, der numerische Hilfstabellen verwendet, um komplexe Spaltenänderungen zu implementieren. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!