gpt4 book ai didi

Mysql 5.7 json 数据类型,在 Rails 5 中使用 activerecord 查询

转载 作者:可可西里 更新时间:2023-11-01 07:01:16 30 4
gpt4 key购买 nike

我正在使用 Rails 5 rc1 制作一个应用程序。Rails 5 支持 mysql 5.7 json 数据类型。

add_column :organizations, :external, :json

假设该列中的值如下:

+---------------------------+
| external |
+---------------------------+
| {"id": 10, "type": "mos"} |
+---------------------------+

要在外部列中搜索特定的“id”和“type”,我在 mysql 中使用以下查询:

select external from organizations where JSON_CONTAINS(external,'{"id": 10, "type": "mos"}') ;

现在,我想知道如何使用 Rails 进行相同的查询。以下不起作用:

Organization.where("JSON_CONTAINS(external,'{"id": 10, "type": "mos"}')")

注意:我无法删除 json 文本周围的引号,因为它是查询的一部分。

最佳答案

您仍然可以利用 ActiveRecord 的 where 方法并绑定(bind)变量,而无需求助于 find_by_sql。

Organization.where("external->'$.id' = :id and external->'$.type' = :type", id: 10, type: "mos")

关于Mysql 5.7 json 数据类型,在 Rails 5 中使用 activerecord 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37300385/

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