2011-04-16 153 views
2

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

+2

欢迎来到StackOverflow。请尝试包括一些源代码并扩展您的问题,以便我们能够更好地弄清楚如何回答它。如果您需要帮助,请阅读以下建议:http://tinyurl.com/so-hints – 2011-04-16 21:48:50

+0

[如何在SQL中使用LIKE关键字?](http://stackoverflow.com/questions/1096935/how -sql-like-keyword-in-sql) – 2011-04-16 22:11:19

+0

@Matt Ball,它实际上并不重复 – fl00r 2011-04-16 22:20:52

回答

1

你可以做到这一点的黑客:

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

这将返回所有对象从YourModelyour_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,99

+0

我喜欢本机解决方案。我正在寻找一种能够以这种方式完成的方式 – keepitterron 2011-04-23 03:30:21

0

您可以在sqlite中使用glob

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