我似乎无法正确查询此查询。续集实施:
SELECT count(id) FROM users WHERE username = "alpha" AND status = "new"
这是我到目前为止所拥有的:
db = Sequel.connect('postgres://me:pw@0.0.0.0:5432/dbname)
u = db[:users]
puts "Total users: #{u.count}" # this is correct
puts db.where(:username => "alpha", :status => "new").count
我尝试了各种直接SQL,但似乎也没有用。它闻起来像这是补救,但连接很好,我可以复制确切的SQL,它不会回来相同。
答案 0 :(得分:0)
您忘了选择表格。你想要这个:
db[:users].where(username:'alpha', status:'new').count
对于SQLite3,这会生成查询:
SELECT count(*) AS 'count'
FROM `users`
WHERE ((`username` = 'alpha')
AND (`status` = 'new'))
LIMIT 1
您应该收到的错误消息是:
NoMethodError: undefined method `where' for #<Sequel::SQLite::Database: ...>
如果你看到这个错误并阅读它,它应该让你知道调用db.where
是不对的。
除了使用原生续集DSL工作外,您还可以在续集中run raw sql commands。