Я думаю, что лучше, если вы сделали это с помощью PHP:
$counters = array();
foreach($q->result as $r)
$counters[$r['mytable']]++;
Поскольку я не знаю интерфейс вашей базы данных, это не точный код, но я полагаю, что вы можете получить общее представление (я предполагаю, что ваш объект набора результатов представляет собой массив ассоциативных массивов).
Edit:
Альтернативная схема
CREATE TABLE info_generic (id int not null auto_increment PRIMARY KEY, name varchar(100),
record_type tinyint not null default 1, body TEXT, tag_id int , info_type_id int ,
KEY (record_type) record_type,
KEY(tag_id) tag_id,
KEY(info_type_id) info_type_id
);
CREATE TABLE tags(id int not null auto_increment PRIMARY KEY, description VARCHAR(100) );
CREATE TABLE info_types(id int not null auto_increment PRIMARY KEY,
description VARCHAR(100), record_type tinyint default 1
);
Атрибуты объяснены
record_type: 1 -> global_info, 2 -> person, 3 -> event, 4 -> caffe
тело: 1 -> тело, 2 -> фамилия, 3 -> тело, 4 -> описание
тег: 1 -> тег, 2 -> информация, 3 -> тело, 4 -> описание
Затем вы можете создать отдельный SQL с помощью INNER JOINs для подачи записей в Sphinx.