我正在尝试使用MySQL pkg尝试获取多个查询的结果,所以我编写了一个循环:
db = connect_db()
variants_location = get_data_from_variant_file(variant_file)
query = MySQL.Stmt(db, """SELECT info
FROM hgmd_hg38_vcf
WHERE chrom = (?) AND pos = (?) AND ref = (?) AND alt = (?);""")
for loc in variants_location
println(MySQL.execute!(query, loc))
end
以下是“ variants_location”变量的一个元素:
SubString{String}["16", "2074320", "C", "A"]
有没有一种方法可以获取查询的执行结果?我尝试只打印它,但是它只返回一个数字。
答案 0 :(得分:0)
根据文档,MySQL.jl
似乎不支持用于选择数据的预编译SQL查询(只能使用INSERT
,DELETE
,UPDATE
)
您有以下选择:
MySQL.Query(conn, sql) |> DataFrame
模式。但是,这易于进行SQL注入,并且需要每次由数据库编译查询。 INSERT
将结果存储在临时表中,而不是使用上述模式获取结果-这有点难看PyCall.jl
或JDBC.jl
库使用Python或Java驱动程序。这需要更多的配置,但是Python和Java MySQL驱动程序都支持预编译的语句。