есть таблица с 1 000 000 записей:
CREATE TABLE IF NOT EXISTS `tab` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_t` int(11) NOT NULL,
`id_z` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_z` (`id_t`,`id_z`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1921550 ;
в id_t значения от 1 до 10 000
в id_z от 1 до 100 000
есть запрос:
SELECT id_z, COUNT( * ) AS `cou`
FROM `tab`
WHERE (
tab.id_t =1
OR tab.id_t =2)
GROUP BY `id_z`
ORDER BY `cou` DESC
Этот запрос использует:
EXPLAIN: Extra Using where; Using index
Можно как то избежать GROUP BY?
Типа такого варианта только правильного:
(if(cou)cou=cou+1 else 1)) AS cou
чтоб он не создавал строчку с таким же id_z а дописывал +1 в столбец счетчик уже существующий?
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.