我有一个看起来像这样的mysql表:
Variant
我正在尝试构建一个最终看起来像这样的多维数组:
id | id_transaction | id_item |
1 | it0001 | T0001 |
2 | it0001 | T0002 |
2 | it0001 | T0003 |
3 | it0002 | T0001 |
4 | it0002 | T0003 |
5 | it0003 | T0003 |
6 | it0003 | T0004 |
我正在使用选择查询:
Array
(
array('T0001','T0002','T0003'),
array('T0001','T0003'),
array('T0003','T0004'),
);
有谁知道怎么做?
答案 0 :(得分:4)
1.不要使用df = pd.DataFrame([['a', 'b'], ['c', 'd']])
现已弃用+已删除。使用'[{"unique":"False","win":"False"}]'
df_win = pd.read_json(path_or_buf='[{"unique":"False","win":"False"}]', orient='values')
#df_win = pd.read_json(path_or_buf='some_url' + index, orient='values')
combined = pd.concat([df, df_win], axis=1, join_axes=[df.index])
或mysql_*
作为此
2.查询执行后你没有做任何事情。
mysqli_*
版本代码为: -
PDO
答案 1 :(得分:3)
以这种方式使用GROUP_CONCAT
:
SELECT id_transaction, GROUP_CONCAT(id_item)
FROM transaction_item
GROUP BY id_transaction
这将产生以下结果:
+----------------+-------------------+
| id_transaction | id_item |
+----------------+-------------------+
| it001 | T0001,T0002,T0003 |
+----------------+-------------------+
| it002 | T0001,T0003 |
+----------------+-------------------+
| it003 | T0003,T0004 |
+----------------+-------------------+
然后您可以使用php' explode()
以下列方式创建数组:
$result = mysqli_query($conn, $sql_query);
while($row = mysqli_fetch_assoc($result)) {
$final[] = explode(',', $row["id_item"]);
}
print_r($final);
以这种方式执行此操作将为您提供更快结果,因为PHP只会迭代3次以构建您的数组。