如果列表t
包含c1
,c2
和cx
列,则表单中的Sequel(版本3.27.0)查询失败:
DB[:t].order(:cx).select{[:c1, :c2]}
我的输出中不需要cx
的值,我只是希望它们用于排序。
等效的SQL将是:
SELECT c1, c2 FROM t ORDER BY cx;
我目前的解决方法是只要求cx
,即使我不需要它:
DB[:t].order(:cx).select{[:c1, :c2, :cx]}
任何人都可以确认这是续集中已知的行为/错误吗?
答案 0 :(得分:3)
Sequel为该代码生成的SQL是:SELECT c1, c2 FROM t ORDER BY cx
。如果它失败了,那很可能是你的数据库出了问题(你需要发布你想要调试它的回溯)。
FWIW,我将使用以下续集代码:DB[:t].order(:cx).select(:c1, :c2)
。如果您没有使用它提供的功能,则没有理由使用虚拟行块。