Dans Mysql, ajoutez par lots plusieurs colonnes à la table en fonction d'une autre colonne
<p>J'ai un tableau à trois colonnes.
Pour chaque identifiant, nous avons jusqu'à 400 valeurs <code>index</code> Je souhaite ajouter des colonnes en fonction du nombre d'index. Dans l'exemple que j'ai fourni, j'ai 4 index puis j'ai ajouté quatre colonnes à la table. Voici le tableau que j'ai : </p>
<pre class="brush:php;toolbar:false;">Créer une table buy_sell (id int, idx varchar(255), sell float(2, 1));
insérer dans buy_sell (id, idx, sell) des valeurs ('1', 'a', '4');
insérer dans buy_sell (id, idx, sell) des valeurs ('1', 'b', '6');
insérer dans buy_sell (id, idx, sell) des valeurs ('1', 'c', '8');
insérer dans buy_sell (id, idx, sell) des valeurs ('1', 'd', '9');
insérer dans buy_sell (id, idx, sell) des valeurs ('3', 'b', '1');
insérer dans buy_sell (id, idx, sell) des valeurs ('3', 'c', '2');
insérer dans buy_sell (id, idx, sell) des valeurs ('2', 'a', '5');
insérer dans buy_sell (id, idx, sell) des valeurs ('2', 'b', '7');
insérer dans buy_sell (id, idx, sell) des valeurs ('2', 'd', '5');
SELECT * FROM buy_sell;</pre>
<p>Voici le résultat :</p>
<table class="s-table">
<tête>
<tr>
<th>id</th>
<th>idx</th>
<th>À vendre</th>
≪/tr>
≪/tête>
<corps>
<tr>
<td>1</td>
<td>a</td>
<td>4,0</td>
≪/tr>
<tr>
<td>1</td>
<td>b</td>
<td>6,0</td>
≪/tr>
<tr>
<td>1</td>
<td>c</td>
<td>8,0</td>
≪/tr>
<tr>
<td>1</td>
<td>d</td>
<td>9,0</td>
≪/tr>
<tr>
<td>3</td>
<td>b</td>
<td>1,0</td>
≪/tr>
<tr>
<td>3</td>
<td>c</td>
<td>2.0</td>
≪/tr>
<tr>
<td>2</td>
<td>a</td>
<td>5,0</td>
≪/tr>
<tr>
<td>2</td>
<td>b</td>
<td>7,0</td>
≪/tr>
<tr>
<td>2</td>
<td>d</td>
<td>5,0</td>
≪/tr>
</tcorps>
</tableau>
<p>Par exemple, pour id=1, nous avons ici quatre index (a, b, c, d), puis nous avons quatre colonnes non nulles.Pour id = 3 nous avons deux index (b, c) puis nous avons deux colonnes non nulles, donc pour la première colonne nous mettons zéro, pour la deuxième colonne nous mettons 1 et pour la troisième colonne nous plaçons 2. Etc., etc. Voici le tableau que je veux : </p>
<table class="s-table">
<tête>
<tr>
<th>id</th>
<th>Vendre 1</th>
<th>Vendre 2</th>
<th>Vendre 3</th>
<th>Vendre 4</th>
≪/tr>
≪/tête>
<corps>
<tr>
<td>1</td>
<td>4</td>
<td>6</td>
<td>8</td>
<td>9</td>
≪/tr>
<tr>
<td>3</td>
<td>0</td>
<td>1</td>
<td>2</td>
<td>0</td>
≪/tr>
<tr>
<td>2</td>
<td>5</td>
<td>7</td>
<td>0</td>
<td>5</td>
≪/tr>
</tcorps>
</tableau>
<p>J'ai beaucoup cherché et essayé <code>Group_concat</code>, <code>JSON_ARRAYAGG</code> etc. mais je n'ai pas trouvé de solution. Qu'est-ce que je dois faire? </p>