【问题标题】:SQL and SQLite: how to search field starting with a numberSQL 和 SQLite:如何搜索以数字开头的字段
【发布时间】:2011-08-07 01:57:51
【问题描述】:

我有一个 SQL 模型,我想在其中搜索所有以数字开头的单词。 我不能使用正则表达式,因为 SQLite 不支持,我怎样才能欺骗它以获得相同的结果?

【问题讨论】:

  • 欢迎来到 StackOverflow。请尝试包含一些源代码并扩展您的问题,以便我们更好地弄清楚如何回答它。如果您需要帮助,请阅读此内容以获得建议:tinyurl.com/so-hints
  • @Matt Ball,实际上并不是重复的

标签: sql ruby sqlite sinatra


【解决方案1】:

你可以这样做:

@results = YourModel.where("(your_field + 0) > 0")

它将返回来自YourModel 的所有对象,其中your_field 以大于零(而不是零)的数字开头

或者更多的原生解决方案:

@results = YourModel.where("substr(your_field,1,1) IN (?)", (0..9).to_a)

这意味着your_field 的第一个字符应该是以下数字之一:0、1、2、3、4、5、6、7、8、9

【讨论】:

  • 我喜欢原生解决方案。我正在寻找一种方法来做到这一点
【解决方案2】:

你可以在 sqlite 中使用glob

Model.filter("field glob ?", '[0-9]*')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 2013-03-08
    • 2020-11-22
    • 2012-02-07
    相关资源
    最近更新 更多