2016-10-18 13 views
-1

このクエリを正しく取得できないようです。続編実装:私は、様々な直接SQLを試してみたし、それはどちらか動作していないようSequel SELECT count(id)FROM tablename WHERE username = "alpha"

db = Sequel.connect('postgres://me:[email protected]:5432/dbname) 
u = db[:users] 
puts "Total users: #{u.count}" # this is correct 
puts db.where(:username => "alpha", :status => "new").count 

SELECT count(id) FROM users WHERE username = "alpha" AND status = "new" 

は、ここで私がこれまで持っているものです。これは改善のようなにおいがしますが、接続性は問題ありません。同じように戻らない正確なSQLを再現できます。

答えて

0

テーブルを選択するのを忘れました。あなたがこの希望:SQLite3のために

db[:users].where(username:'alpha', status:'new').count 

を、このクエリを生成します。

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

+0

2行目がテーブルです。私は本当に最後の行からそれを残しました。 –

+0

@Rich_Fそれはイライラしています。正確なコードを貼り付けてコピーして、その場で入力しないでください。あなたの実際のコードと実際のエラーで質問を編集してください。 – Phrogz

+0

これは貼り付けられたテキストです。私は多くのバリエーションを試してみましたが、どれも効果がありません私はここに私のコードを再入力しません。 –

関連する問題