Sequel不支持在结果后过滤吗?

时间:2013-05-27 11:11:34

标签: ruby-on-rails ruby ruby-on-rails-3 sequel

以下查询适用于Sequel:

table_sizes = db_config["SELECT table_name,table_rows / 1000000 as table_rows, data_length / 1000000 as data_length, index_length / 1000000 as index_length,round(((data_length + index_length) / 1024 / 1024 / 1024),5) 'size'
FROM information_schema.TABLES 
WHERE table_schema = '#{db_name}' and table_name in ('table1','table2','table3'....'table20')"]

但是,当我做这样的事情时,两个查询都不起作用:

arr = ['table1','table2','table3'...'table20']

table_sizes = db_config["SELECT table_name,table_rows / 1000000 as table_rows, data_length / 1000000 as data_length, index_length / 1000000 as index_length,round(((data_length + index_length) / 1024 / 1024 / 1024),5) 'size'
FROM information_schema.TABLES 
WHERE table_schema = '#{db_name}'"].filter(:table_name => arr)

或:

table_sizes = db_config["SELECT table_name,table_rows / 1000000 as table_rows, data_length / 1000000 as data_length, index_length / 1000000 as index_length,round(((data_length + index_length) / 1024 / 1024 / 1024),5) 'size'
FROM information_schema.TABLES 
WHERE table_schema = '#{db_name}'"].where(:table_name => arr)

我最好的方法是什么? Sequel不支持在结果后过滤吗?

1 个答案:

答案 0 :(得分:1)

在获取查询结果后,Sequel如何支持过滤?它的工作就是在那时完成的。

Sequel是一个ORM,它减少了编写SQL查询的需要,将生成的查询交给DBM,检索结果并将它们传递给您的代码。

一旦收到结果,续集就不在了。

基本上,您使用Sequel提供与数据库的连接,并忽略了其所有其他优点和功能。