gpt4 book ai didi

sql - Ruby + Sequel - 将数组序列化为文本数组的查询

转载 作者:太空宇宙 更新时间:2023-11-03 18:14:30 25 4
gpt4 key购买 nike

我在 ruby​​ 应用程序中有一组过滤器,它对 Postgres 连接进行原始 SQL 查询。我想弄清楚如何将这个数组序列化为可查询的东西,

即:SELECT * FROM data WHERE strings IN #{strings_array}

我找不到这方面的任何资源。序列化此查询的正确方法是什么?

编辑:我最终弄清楚了:

query = ''
arr.each_with_index { |e, i|
if i == arr.length - 1
query += "#{e}"
else
query += "#{e},"
end
}

然后

"AND column @> ('{#{query}}')"

但一定有更简洁的方法,不是吗?

最佳答案

你说你用的是Sequel。 Sequel 可以自动执行这种查询:

DB[:data].where(strings: ["my", "array", "of", "strings"])
# => #<Sequel::Postgres::Dataset: "SELECT * FROM \"data\" WHERE (\"strings\" IN ('my', 'array', 'of', 'strings'))">

“手动”构建 SQL 查询是有风险的,尤其是当您处理来自用户的数据时。

关于sql - Ruby + Sequel - 将数组序列化为文本数组的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28360683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com