我想在sqlite中使用正则表达式,但我不知道如何.
我的表有一个字符串,如下所示:"3,12,13,14,19,28,32"现在如果我输入"where x LIKE'3'"我也得到包含13或32之类值的行,但我想只获得该字符串中具有正好值3的行.
有谁知道如何解决这个问题?
我使用SQLite3数据库在Rails 3中有以下语句:
word = 'Hello'
word_entry = Word.where("name REGEXP :word", {:word => "[[:<:]]#{word}[[:>:]]"})
Run Code Online (Sandbox Code Playgroud)
但是,在SQLite3下运行时,我会继续:
SQLite3 :: SQLException:没有这样的函数:REGEXP
我在SQLite3文档中读到它确实支持REGEXP函数.在我的gemfile中,我有这条线
gem 'sqlite3'
Run Code Online (Sandbox Code Playgroud)
我的数据库配置文件如下所示:
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
Run Code Online (Sandbox Code Playgroud)
有什么想法发生了什么?
解决方案: 我最终找到了这个解决方案.不幸的是,它不适用于Rails 3.因此,为了使用正则表达式,我最终切换到MYSQL而不是SQLite3.
是否可以在添加regexp功能的情况下重建libsqlite3.dylib?或者使用create_sqlite_function来做到这一点?