1. 25 лучших таблиц по количеству различных записей для "сайта"
IIUC, «сайт» уникален, поэтому вы должны быть в состоянии:
select
TABLE_NAME,
ifnull(TABLE_ROWS, 0) as SITES
from INFORMATION_SCHEMA.TABLES
where TABLE_SCHEMA='bookfeather'
order by SITES desc limit 25
Но вместо TABLE_ROWS вместо. уникальных записей SITE с подмигиванием и клеветой - лучше переделать. :)
2. 25 лучших таблиц по сумме "voice_up"
Если по какой-либо причине вы не можете последовать прекрасному совету по редизайну, вам придется программно перебирать каждую таблицу. В вашем коде вы можете перебрать SHOW TABLES
, накапливая результат
select 'tblName', ifnull(sum(VOTES_UP), 0) as UPVOTES from tblName
сортировка по второму полю ваших накопленных рядов и обрезка до верха 25.
Вариант этого включает сводную таблицу, которая отслеживает таблицы и sum () 'UPVOTES, возможно, переписывается периодически cron , обновляется на лету с помощью триггеров для каждой таблицы или представляется в VIEW
(re * CREATE
d для каждой новой таблицы), что составляет UNION
всех составляющих запросов.
Но не делай ничего из этого. :) Перейдите к дизайну с одной таблицей (возможно, попросив механизм хранения разделить, если это вызывает озабоченность).