我在Rails应用程序中测试以下代码:
a = Ex.all.pluck(:id)
b = Ex.where("name LIKE ?", "%asdf%").where("id IN ?", a).pluck(:id)
它正在生成这个PostgreSQL语句:
SELECT "exs"."id" FROM "exs" WHERE (name LIKE '%asdf%') AND (id IN 9,10,11,12,13,14,15)
但是给出了这个错误:
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `async_exec':
PG::SyntaxError: ERROR: syntax error at or near "9" (ActiveRecord::StatementInvalid)
LINE 1: "exs" WHERE (name LIKE '%asdf%') AND (id IN 9,10,11,12...
^
出了什么问题?这是我第一次使用这种查询,而且我无法在任何指南或类似问题中找到答案。
感谢您的时间。
答案 0 :(得分:0)
使用Object.keys(data).map((key) => ({ key, value: data[key] }));
时,您需要将选项括在括号中:
IN