gpt4 book ai didi

sql - Rails 动态 'Where' 子句

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

我有一个搜索字段,用户可以在其中输入“Param1”,我的 Controller 包含:

Model.where('column_name LIKE ?', "%#{search_field}%")

这被转换为:

SELECT ... FROM table WHERE column_name LIKE '%Param1%'

如果用户输入“Param1”,这会很好用,但我想让它以逗号分隔的搜索字段。

因此,如果用户输入“Param1,param2”或“Param1,Param2,Param3”,WHERE LIKE 子句应该起作用,我的想法是根据“,”拆分字符串,完全不知道如何构建此处为 Model.where 子句,因为它可以是 1 个参数或 4 个参数。

最佳答案

如果您使用的是 PostgreSQL,则可以使用 ANY 传递映射的参数数组:

Model.where('name LIKE ANY(array[?])', params.split(',').map { |val| "%#{val}%" })
# SELECT "models".*
# FROM "models"
# WHERE (name LIKE ANY(array['%param1%','%param2%']))

关于sql - Rails 动态 'Where' 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58124752/

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