2013-05-27 44 views
0

下面的查询工作在续集:续集不支持结果后过滤吗?

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不支持过滤吗?

+0

与其尝试将SQL查询包装在Sequel表数据集中,学习使用Sequel进行查询。你在做什么几乎没有改进写入原始SQL,并没有利用Sequel的优势。 –

回答

1

继续从查询中获取结果后,Sequel如何支持筛选?它的工作是在那个时候完成的。

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

一旦收到结果,续集不在图片中。

基本上你使用Sequel来提供到数据库的连接,并忽略了它的所有其他优点和特性。

+0

我通常使用Sequel的强项......这是我第一次在续集中包装查询。这不是我的方式,但我没有多少选择。不管怎么说,多谢拉 –