尝试允许通用数组或值查询,如 rails 用于允许 where(a: [1]) 或 where(a: 1) 工作等等
Posted
技术标签:
【中文标题】尝试允许通用数组或值查询,如 rails 用于允许 where(a: [1]) 或 where(a: 1) 工作等等【英文标题】:Trying to allow for generalized array or value queries like rails uses to allow for where(a: [1]) or where(a: 1) to work and more 【发布时间】:2022-01-18 07:19:51 【问题描述】:所以我正在搜索的数据类似于(数百个具有各种值组合的数据):
attributes1:
attr1: "1",
attr2: "3",
attr3: ["A,"B"],
attributes2:
attr1: "2",
attr2: "5",
attr3: ["B,"D"],
attributes3:
attr1: "2",
attr2: "4",
attr3: ["B,"D"],
我遇到了这个:
Check whether array in JSONB column includes any of the values in another array
接近但不完全存在(不工作,不清楚原因)。
虽然有点复杂,但查询是预定义的,用于填充下拉菜单,例如 attr3: "A", attr2: "4"
和 attr1: ["1", "2"]
。基本上很笼统。
我让它更容易处理 attr1: "2"
产生attributes2
和attributes3
(或attr1: '2", attr2: "4"
只给出attributes3
,但同时尝试将数组作为属性值和查询值处理)现在。
【问题讨论】:
【参考方案1】:在使用attrX:
中的每个值之前,您可以使用Array()
进行转换。
# Will wrap in an Array
Array("1") => ["1"]
# Will return the original Array
Array(["1"]) => ["1"]
任何使用那一天的方法都可以写成总是期望一个数组。
【讨论】:
以上是关于尝试允许通用数组或值查询,如 rails 用于允许 where(a: [1]) 或 where(a: 1) 工作等等的主要内容,如果未能解决你的问题,请参考以下文章