以下查询适用于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 :(得分:1)
在获取查询结果后,Sequel如何支持过滤?它的工作就是在那时完成的。
Sequel是一个ORM,它减少了编写SQL查询的需要,将生成的查询交给DBM,检索结果并将它们传递给您的代码。
一旦收到结果,续集就不在了。
基本上,您使用Sequel提供与数据库的连接,并忽略了其所有其他优点和功能。