【问题标题】:How identify random spaces blank in field ActiveRecord query如何在字段 ActiveRecord 查询中识别随机空格空白
【发布时间】:2021-06-14 12:30:56
【问题描述】:

我发现自己执行了一个 rake 任务,用 - 替换 Client 模型的 first_name 和 last_name nil,但后来我很惊讶这两个字段中不仅有 nil,而且还有 @ 987654326@' '' '等等,有没有办法在不经过所有Clients的情况下识别出满足所有这些条件的客户?

澄清一下,以前Client 模型没有对这些字段进行验证。

【问题讨论】:

  • 试试Client.where.not("first_name > ''")如果这对你有用
  • 它适用于某些情况,例如我拥有的带有 first_name: ' ' 的客户端不是由此查询返回的,但它是一个提前。谢谢!
  • 这可能会有所帮助:stackoverflow.com/questions/8470813/…
  • Client.where("NULLIF(TRIM(first_name),'') IS NULL") 应该处理所有上述情况,假设这些情况实际上是空格而不是像水平制表符这样的不可打印字符。然后,您可以通过 update_all 调用来更新所有记录以满足您的条件(如果需要)。

标签: ruby-on-rails activerecord


【解决方案1】:

感谢@engineersmnky,您的回答帮助了我的解决方案。

使用下一个案例更新属性:

  • ''
  • ''
  • ' ' * n

解决方案:Model.where("NULLIF(TRIM(col),'') IS NULL")

【讨论】:

    猜你喜欢
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2015-01-14
    • 2020-01-07
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多