2016-10-18 1 views
-1

이 쿼리를 올바르게 표시 할 수 없습니다. 의 속편 구현 : 나는 다양한 직접 SQL을 시도하고 그 중 하나가 작동하지 않는 것Sequel SELECT count (id) FROM tablename 여기서 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

두 번째 줄이 표입니다. 나는 정말로 마지막 줄에서 그것을 버렸다. –

+0

@Rich_F 그것은 실망 스럽습니다. 정확한 코드를 복사하여 복사하고 입력하지 마십시오. 실제 코드와 실제 오류로 질문을 수정하십시오. – Phrogz

+0

붙여 넣은 텍스트입니다. 나는 많은 변주를 시도했고 그들 중 누구도 일하지 않았다. 내 코드를 여기에 다시 입력하지 않습니다. –

관련 문제