【问题标题】:How to Query Mysql text column如何查询Mysql文本列
【发布时间】:2020-07-18 17:16:53
【问题描述】:

我有 mysql 'text' 列,数据为 json,如下所示,如何使用特定值进行查询,其中 Banking 是模型名称,info 是字段名称

Banking 
  info : text

info: {"age": 23, name: "John"}

【问题讨论】:

标签: mysql ruby ruby-on-rails-4 activerecord ruby-on-rails-5


【解决方案1】:

您应该使用 ActiveRecord 使用 ->> 运算符执行此查询:

Banking.where("info ->> 'name' = 'John'")

【讨论】:

  • 它没有用,给出语法错误,尝试了你建议的相同@matanco
  • '>' 附近的语法不正确。: EXEC sp_executesql N'SELECT [bankings].* FROM [bankings] WHERE (info ->> ''account_type'' = ''card'')'
  • 您能否在 Activerecord 指南或任何参考资料中分享有关此运算符 '->> ' 的参考资料
【解决方案2】:

在我看来,您可以尝试按如下方式通过 LIKE 查询进行搜索,但由于您的数据库以文本形式保存数据,因此处理异常情况非常困难。所以我认为你应该尝试使用 json 类型的 mysql 或将其拆分为表并将年龄保存为整数。

select * from bankings where info LIKE '%"age": 23%'

红宝石

Banking.where('infor LIKE ?', '%"age": 23%')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多