Следующий запрос работает в 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 фильтрацию после результатов?
Вместо того, чтобы пытаться обернуть SQL-запросы в наборе данных таблицы Sequel, научитесь использовать Sequel для выполнения запроса. То, что вы делаете, почти не улучшается по сравнению с написанием исходного SQL и не использует сильные преимущества Sequel. –