在Mysql中,根據另一列向表中批量添加多個列
<p>我有一個有三列的表格。
對於每個id,我們有多達400個<code>index</code>值。我想根據index的數量添加列。在我提供的範例中,我有4個index,然後我在表格中新增了四個欄位。這是我擁有的表格:</p>
<pre class="brush:php;toolbar:false;">Create table buy_sell (id int, idx varchar(255), sell float(2, 1));
insert into buy_sell (id, idx, sell) values ('1', 'a', '4');
insert into buy_sell (id, idx, sell) values ('1', 'b', '6');
insert into buy_sell (id, idx, sell) values ('1', 'c', '8');
insert into buy_sell (id, idx, sell) values ('1', 'd', '9');
insert into buy_sell (id, idx, sell) values ('3', 'b ', '1');
insert into buy_sell (id, idx, sell) values ('3', 'c ', '2');
insert into buy_sell (id, idx, sell) values ('2', 'a', '5');
insert into buy_sell (id, idx, sell) values ('2', 'b', '7');
insert into buy_sell (id, idx, sell) values ('2', 'd', '5');
SELECT * FROM buy_sell;</pre>
<p>這是結果:</p>
<table class="s-table">
<thead>
<tr>
<th>id</th>
<th>idx</th>
<th>出售</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>一</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>一</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>
</tbody>
</table>
<p>例如,對於id=1,我們在這裡有四個index(a,b,c,d),然後我們有四個非零列。對於id = 3,我們有兩個index(b,c),然後我們有兩個非零列,所以對於第一列,我們放置零,對於第二列,我們放置1,對於第三列,我們放置2。依此類推。這是我想要的表格:</p>
<table class="s-table">
<thead>
<tr>
<th>id</th>
<th>賣出1</th>
<th>賣2</th>
<th>賣3</th>
<th>賣4</th>
</tr>
</thead>
<tbody>
<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>
</tbody>
</table>
<p>我搜尋了很多,並嘗試了<code>Group_concat</code>,<code>JSON_ARRAYAGG</code>等,但我找不到解決方法。我需要做什麼? </p>