gpt4 book ai didi

ruby-on-rails - 为什么我的 in (?) 子句在 ('1,2,3' 中运行 sql id 而不是 (1,2,3) 中的 id

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:19 26 4
gpt4 key购买 nike

我有一个字符串

"1,2,3"

在变量中,我正在做:

User.where("id in (?)", user_id_list)

结果 sql 是:

select users.* from users where (id in ('1,3,4'))

我要:

select users.* from users where (id in (1,3,4))

如何解决这个问题?

user_id_list 必须是数组吗?

最佳答案

当您传入字符串值时,rails 会将其用引号引起来,这就是您看到结果的原因。

当你有一个数组时,你可以这样做:

User.where(:id => user_id_list)

Rails 会自动为您创建 IN 子句。

因为这些是带有整数的用户 ID,我建议只做:

User.where(:id => user_id_list.split(',').map(&:to_i))

关于ruby-on-rails - 为什么我的 in (?) 子句在 ('1,2,3' 中运行 sql id 而不是 (1,2,3) 中的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5691081/

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