【问题标题】:Select from collection based on alphabetical range on a column根据列上的字母范围从集合中选择
【发布时间】:2013-08-27 05:02:16
【问题描述】:
range = "e-h"
Term.all(:conditions => ["name[0] = ?", range.split("-")[0]..range.split("-")[1]])

这会产生ActiveRecord::StatementInvalid: Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[0] = 'e','f','g','h')' at line 1: SELECTterms.* FROMtermsWHERE (name[0] = 'e','f','g','h')

如何从我的术语表中选择名称列的第一个字母在一系列字母之间?

谢谢。

【问题讨论】:

    标签: sql ruby-on-rails-3 activerecord


    【解决方案1】:

    这是一个工作示例:

    range = ('e'..'h')
    Term.where("LEFT(name, 1) IN(?)", range.to_a)
    

    供参考:

    ('e'..'h')
    LEFT(name, 1)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 2019-10-25
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多