在示例中,我想在表示例的第二行中分配
new_array
的值,也就是
WHERE id = 2
匹配的行。
import duckdb
import numpy as np
con = duckdb.connect()
con.sql("CREATE TABLE example (id INTEGER, vec FLOAT[3]);")
con.sql("INSERT INTO example VALUES (1, array_value(1.0::FLOAT, 2.0::FLOAT, 3.0::FLOAT));")
con.sql("INSERT INTO example VALUES (2, NULL);")
con.sql("SELECT * FROM example;").fetchall()
new_array = np.array([4,5,6], dtype=np.float32)
new_array
,我发现这比我预期的要快。一个人可以从数组中选择。这给出了一列。然后,可以使用聚合函数
con.sql("SELECT * from new_array;")
con.sql("UPDATE example SET vec = (SELECT list(column0) FROM new_array) WHERE id = 2;")
con.sql("SELECT * FROM example;").fetchall()