2013-05-27 43 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的強項......這是我第一次在續集中包裝查詢。這不是我的方式,但我沒有多少選擇。不管怎麼說,多謝拉 –