A B*_*A B 3 postgresql ruby-on-rails ruby-on-rails-3
任何人都可以告诉我如何在select_value中编写查询.
我试过了,
ActiveRecord::Base.connection.select_value("select count(*) from leave_details where status= 'Pending' and 'employeedetails_id'=25")
Run Code Online (Sandbox Code Playgroud)
但它显示错误
invalid input syntax for integer: "employeedetails_id".
Run Code Online (Sandbox Code Playgroud)
我正在使用PostgreSQL.
单引号用于引用PostgreSQL中的字符串(以及甚至假装遵守SQL标准的所有其他SQL数据库),所以你说的是这样的:
some_string = some_integer
Run Code Online (Sandbox Code Playgroud)
当你这样做:
'employeedetails_id'=25
Run Code Online (Sandbox Code Playgroud)
这没有任何意义:没有明确的类型转换,你无法比较字符串和整数.您根本不需要引用该标识符:
ActiveRecord::Base.connection.select_value(%q{
select count(*)
from leave_details
where status = 'Pending'
and employeedetails_id = 25
})
Run Code Online (Sandbox Code Playgroud)
如果您甚至需要引用标识符(可能是区分大小写或包含空格),那么您将使用PostgreSQL的双引号.
显然,您创建了列"EmployeeDetails_id"
,使其区分大小写.这意味着你总是必须使用那个案例,你总是要加倍引用它:
ActiveRecord::Base.connection.select_value(%q{
select count(*)
from leave_details
where status = 'Pending'
and "EmployeeDetails_id" = 25
})
Run Code Online (Sandbox Code Playgroud)
我建议您重新编写表格以不使用大小写标识符:
这会让你一次又一次地绊倒你.
归档时间: |
|
查看次数: |
1887 次 |
最近记录: |