2013-05-27 2 views
0

Следующий запрос работает в 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 фильтрацию после результатов?

+0

Вместо того, чтобы пытаться обернуть SQL-запросы в наборе данных таблицы Sequel, научитесь использовать Sequel для выполнения запроса. То, что вы делаете, почти не улучшается по сравнению с написанием исходного SQL и не использует сильные преимущества Sequel. –

ответ

1

Как Sequel будет поддерживать фильтрацию после получения результатов запроса? Его работа выполняется в этот момент.

Sequel - это ORM, и это уменьшает потребность в написании SQL-запросов, передает запрос, сгенерированный в DBM, извлекает результаты и передает их в ваш код.

Как только вы получите результаты, Sequel не работает.

В основном вы используете Sequel для обеспечения соединения с базой данных и игнорируете все другие преимущества и возможности.

+0

Обычно я использую сильные стороны Sequel ... Это первый раз, когда я завернул запрос в дальнейшем. Это не мой путь, но у меня не было выбора. В любом случае спасибо –

Смежные вопросы