Un jour, un internaute en cercle sur QQ a envoyé un message demandant de l'aide :
PropID name Montant
3 Yuanbao 2
2 Ledou 3
Pouvez-vous écrire la sortie dans un SQL, c'est-à-dire copier le nombre d'entrées correspondant au Montant :
Nom du PropID
3 Yuanbao
3 Yuanbao
2 Ledou
2 Ledou
2 Le Dou
[Note]:
3 Yuanbao 2
Note que la dernière colonne est 2, c'est-à-dire qu'il y a 2 de ces enregistrements. Elle devrait devenir
3 Yuanbao
3 Yuanbao
Supprimez la colonne du dernier nombre d'enregistrements et exprimez. le directement avec des lignes répétées, donc Selon cet exemple, 2 Le Dou 3, il faut répéter 3 enregistrements, comme suit :
2 Le Dou
2 Le Dou
2 Le Dou
Après quelques recherches, je n'arrivais pas à comprendre en utilisant un groupe par somme ordinaire si cas quand, j'ai donc dû changer d'avis . J'ai raccroché pendant un moment, alors j'ai parlé à l'internaute M.W. , qui a proposé l'idée de tables auxiliaires numériques.
OK, c'est fait, le SQL est le suivant :
sélectionnez t1.propid,t1.name à partir de tb t1, (sélectionnez 1 comme num union, sélectionnez 2 comme num union, sélectionnez 3 comme num) t2 où t1.amount>= t2.num ordre par 1
milieu, (sélectionnez 1 comme num union sélectionnez 2 comme num union select 3 as num ) t2 part
Il est préférable de créer une autre table auxiliaire num à une seule colonne, de passer de 1 à N, de lui donner simplement des dizaines de milliers, puis le la requête associée sera plus pratique À en juger par le SQL de l'auto-connexion, select ne semble pas avoir pour fonction de générer des nombres en boucle. Comme indiqué dans le tableau suivant, les numéros
Si vous voyez un ami ici et que vous avez une meilleure méthode de mise en œuvre, partagez-le.
Ce qui précède est le contenu de MySQL utilisant des tables auxiliaires numériques pour implémenter des changements de colonnes complexes. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !